我们的调查向我们表明,并非所有浏览器都以统一的方式尊重http缓存指令.
出于安全原因,我们不希望在我们的应用程序某些网页缓存,有史以来,通过Web浏览器.这必须至少适用于以下浏览器:
我们的要求来自安全测试.从我们的网站注销后,您可以按后退按钮查看缓存页面.
CSS和Javascript文件不会经常更改,因此我希望它们可以通过Web浏览器进行缓存.但我还希望Web浏览器能够看到对这些文件所做的更改,而无需用户清除其浏览器缓存.还需要一个适用于版本控制系统(如Subversion)的解决方案.
我见过的一些解决方案涉及以查询字符串的形式在文件末尾添加版本号.
可以使用SVN修订版号为您自动执行此操作:ASP.NET显示SVN修订版号
你能指定如何包含另一个文件的Revision变量吗?那是在HTML文件中,我可以在CSS或Javascript文件的URL中包含修订号.
在Subversion的书中,它说的是Revision:"这个关键字描述了这个文件在存储库中发生变化的最新已知修订版本".
Firefox还允许按CTRL+ R重新加载特定页面上的所有内容.
澄清我正在寻找不需要用户做任何事情的解决方案.
我有一个JavaScript资源,可以随时进行编辑.一旦它被编辑,我希望它能够相对快速地传播到用户的浏览器(比如大概15分钟左右),但是,这种资源编辑的频率很少而且很远(可能每月2次).
我宁愿在浏览器中缓存资源,因为它会被频繁检索,但我也希望缓存能够以半定期的间隔在浏览器上重置.
我知道我可以在请求资源时传递无缓存标头,但我想知道如果我没有通过no-cache,缓存会在浏览器上自动重置.
我想这对于每个浏览器都是独立的,但我不确定.
我尝试谷歌这个,但我发现的大多数点击是关于清除浏览器的缓存...这不是我正在寻找的.
默认情况下,$ .getScript()禁用缓存,您可以使用$ .ajaxSetup并将缓存设置为true.当测试脚本是否实际上是用Firebug缓存时,脚本大部分时间都会返回200(这意味着脚本是一个新的副本),一个可能20或30次,它将返回304(意味着它使用了缓存)版).为什么绝大部分时间都会收到新版本?
$.ajaxSetup({
cache: true
});
$.getScript( scriptFile );
Run Code Online (Sandbox Code Playgroud)
尚未编辑getScript检索的文件,并且请求是页面更改.
我遇到了一个问题,我对HTML文件中引用的一些JavaScript文件进行了更改,但浏览器没有看到更改.它保留在浏览器中缓存的副本,即使Web服务器具有较新的版本.
直到我强制浏览器清除缓存,我才看到更改.
这是一个Web服务器配置吗?我是否需要将JavaScript文件设置为永不缓存?我在Google Web Toolkit中看到了一些有趣的技术,他们在更新时实际创建了一个新的 JavaScript文件名.我相信这是为了防止代理和浏览器保留旧版本的JavaScript文件具有相同的名称.
某处有最佳实践清单吗?
嗨,我对javascript开发相对较新.目前我有一个单独的javascript文件,其中包含大量的misc位代码,可以在网站的不同部分调用.例如,我有一个事件处理程序,一些谷歌地图的东西,只在一个页面上调用,我有一些验证的东西,我的联系页面等等.我的问题,是如何最好地组织这个代码 - 鉴于每个页面只需要很少的代码,但每页的不同和具体?
哦,我正在使用jquery,如果这有所作为.
所以这是我的标题:
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.14.custom.min.js"></script>
<script type="text/javascript" src="js/jdpicker/jquery.jdpicker.js"></script>
<script type="text/javascript" src="js/uniform/jquery.uniform.min.js"></script>
<script type="text/javascript" src="js/jquery.hotkeys.js"></script>
<script type="text/javascript" src="js/visualize/visualize.jQuery.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<script type="text/javascript" src="js/fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript" src="js/jwysiwyg/jquery.wysiwyg.js"></script>
Run Code Online (Sandbox Code Playgroud)
所有这些都必须加载,它滞后我的网站如何让他们缓存,以便加载时间更快
caching ×5
javascript ×5
jquery ×3
http ×2
browser ×1
css ×1
getscript ×1
http-headers ×1
https ×1