js 设置缓存与获取缓存实例学习

发布时间:2020-11-29编辑:脚本学堂
本文介绍了js如何设置缓存与获取缓存的方法,设置缓存,获取设置的缓存,键值对形式,感兴趣的朋友可以参考下。

例子,js设置与获取缓存。
 

复制代码 代码示例:
//设置缓存,获取设置的缓存,键值对形式, name value
localStorage.getItem("key"); //获取键的值
localStorage.setItem("key", 1); //设置键的值

解决js缓存地址问题
js实现不缓存
 

复制代码 代码示例:
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="0">

不缓存js的方法
 

复制代码 代码示例:
<script>
document.write("<s"+"cript type='text/javascript' src='/js/test.js?"+Math.random()+"'></scr"+"ipt>");
</script>

其他的类似,只需在地址后加上+Math.random()
注意:因为Math.random() 只能在Javascript 下起作用,故只能通过Javascript的调用才可以

若上面改为
 

复制代码 代码示例:
(<script type=”text/javascript“ src=”/js/test.js?+Math.random()“></script>

则无法实现不缓存

js文件不缓存

每次连接的地址变化,利用js随机数
 

复制代码 代码示例:
document.write("<s"+"cript type='text/javascript' src='/js/test.js?"+Math.random()+"'></scr"+"ipt>");

禁用页面缓存的几种方法(静态和动态)
1、在Asp页面首部<head>加入    以下是引用片段:
 

复制代码 代码示例:
Response.Buffer    =    True   
Response.ExpiresAbsolute    =    Now()    -    1   
Response.Expires    =    0   
Response.CacheControl    =    "no-cache"   
Response.AddHeader    "Pragma",    "No-Cache"

2、在HtML代码中加入  
 

复制代码 代码示例:
<HEAD>   
<META    HTTP-EQUIV="Pragma"    CONTENT="no-cache">   
<META    HTTP-EQUIV="Cache-Control"    CONTENT="no-cache">   
<META    HTTP-EQUIV="Expires"    CONTENT="0">   
</HEAD>

3、在重新调用原页面的时候在给页面传一个参数 Href="****.asp?random()"
前两个方法据说有时会失效,而第三种则是在跳转时传一个随机的参数!
因为aspx的缓存是与参数相关的,如果参数不同就不会使用缓存,而会重新生成页面,每次都传一个随机的参数就可以避免使用缓存。
这个仅适用于asp&asp.net 。

4、在jsp页面中实现无缓存:
 

复制代码 代码示例:
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
 

这些代码加在<head> </head>中间具体如下
 

复制代码 代码示例:
<head>
<%
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>
</head>

5、window.location.replace("WebForm1.aspx");  
参数就是要覆盖的页面,replace的原理就是用当前页面替换掉replace参数指定的页面。  
这样可以防止用户点击back键。使用的是javascript脚本,举例如下:
a.html
 

复制代码 代码示例:
<html>
<head>
<title>a</title>     
<script language="javascript">
   function jump(){
 window.location.replace("b.html");
}
</script>
</head>
<body>
<a href="javascript:jump()">b</a>
</body>
</html>

b.html
 

复制代码 代码示例:
<html>
<head>
<title>b</title>     
<script language="javascript">
function jump(){
 window.location.replace("a.html");
}
</script>
</head>
<body>
<a href="javascript:jump()">a</a>
</body>
</html>
 

前4种只是清空了cache,即存储在Temporary Internet Files文件夹中的临时文件,而第五种则是使用跳转页面文件替换当前页面文件,并没有清空cache。
即emporary Internet Files产生了相关的临时文件,两者搭配使用真是清空缓存。