javascript脚本缓存怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript脚本缓存怎么解决相关的知识,希望对你有一定的参考价值。

禁用客户端缓存
HTM网页
<META HTTP-EQUIV="pragma"
CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control"
CONTENT="no-cache, must-revalidate">
<META
HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57
GMT">
ASP网页
<%
Response.Expires =
-1
Response.ExpiresAbsolute = Now() - 1

Response.cachecontrol = "no-cache"
%>
php网页

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");
JSP

response.setHeader("Pragma","No-Cache");

response.setHeader("Cache-Control","No-Cache");

response.setDateHeader("Expires", 0);
C#中禁止cache的方法!

Response.Buffer=true;

Response.ExpiresAbsolute=System.DateTime.Now.AddSeconds(-1);

Response.Expires=0;
Response.CacheControl="no-cache";

加入
<MEAT HTTP-EQUIV="Pragma"
CONTENT="no-cache">
不缓存。

一、Expires(期限)
说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅。

用法:<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997
08:21:57 GMT">
注意:必须使用GMT的时间格式。

二、Pragma(cache模式)

说明:禁止浏览器从本地机的缓存中调阅页面内容。
用法:<META
HTTP-EQUIV="Pragma" CONTENT="no-cache">

注意:这样设定,访问者将无法脱机浏览。

三、脚本实现
<%

response.expires = 0
response.expiresabsolute = now()
- 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"

Response.cachecontrol = "no-cache"
%>

IE浏览器访问一个网页的时候,首先会到临时文件夹中去寻找和这个网页相关的各个文件(如各种图片)。如果在临时文件夹中找到了一些文件,那么浏览器就会使用这些临时文件夹中的文件,而不去服务器下载这些文件。

不幸的是,我的服务器上的文件是经常变化的,如果IE优先考虑临时文件夹中的文件,那么就不能反映出我服务器上的变化。

现在有两个解决办法,但都有缺陷:
一是使用网页的自刷新,但是刷新速度快的话会有闪烁,不符合我其他方面的要求。

二是在IE设置中设成“每次访问此页时检查”。此时IE不考虑临时文件夹中的内容,直接从服务下载各个文件。但是这种办法需要用户进行设置,对用户来说有点麻烦。而且这样的设置会影响用户访问其他网站的速度。
参考技术A js文件缓存通常采用文件后加时间戳的方式解决
例如请求1.js将js写为1.js?t=时间戳
其中时间戳也可以用随机数替代本回答被提问者和网友采纳
参考技术B

像一楼所说的用时间戳(给出自己刚写的一个小瀚抒):

function linkScript(src) 
var flushjs = src + "?timeStamp=" + new Date().getTime();
var jsOne = document.createElement("script");
var head = document.getElementsByTagName("head")[0];
head.appendChild(jsOne);
jsOne.setAttribute("src", flushjs);

linkScript("/js/xxx.js");
linkScript("/js/xxx2.js");

浏览器禁用了JavaScript脚本怎么解决?致使有的网页不能正常跳转

参考技术A 菜单栏中“工具”中选择“Internet选项”–>“安全”选项卡–>选择“Internet”(蓝色的小地球)–>“自定义级别”–>找到“脚本”下的“Java小程序脚本”中进行启用和禁用。

以上是关于javascript脚本缓存怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

Java服务端用CORS方法解决浏览器跨域问题

6-JavaScript基础

浏览器禁用了JavaScript脚本怎么解决?致使有的网页不能正常跳转

浏览器不能执行javascript代码怎么解决

禁用js时没有脚本标签

JavaScript 缓存破坏脚本