转自:
http://www.iteye.com/topic/228187
为了减小浏览器与服务器之间网络传输压力,往往对静态文件,如js,css,修饰的图片做cache,也就是给这些文件的HTTP响应头加入Expires和Cache-Control参数,并指定缓存时间,这样一定时间内浏览器就不会给服务器发出任何的HTTP请求(除了强制刷新),即使在这段时间内服务器的js或css或图片文件已经更新多次,但浏览器的数据依然是原来最能初cache的旧数据,有没有办法让浏览器拿到已经修改后的最新数据呢?
有,方法是用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Control,如下:
$.ajax({
type: "GET",
url: "static/cache.js",
dataType: "text",
beforeSend :function(xmlHttp){
xmlHttp.setRequestHeader("If-Modified-Since","0");
xmlHttp.setRequestHeader("Cache-Control","no-cache");
}
});
这里用了jquery.
这样浏览器就会把最新的文件替换掉本地旧文件。
当然,这里还一个问题就是js必须知道服务器更新了那个js、css、图片,利用cookie和时间版本应该可以解决.
另,jquery自从1.2开始就有ifModified和cache参数了,不用自己加header
ifModified Boolean Default: false
Allow the request to be successful only if the response has changed since the last request. This is done by checking the Last-Modified header. Default value is false, ignoring the header.
cache Boolean Default: true
Added in jQuery 1.2, if set to false it will force the pages that you request to not be cached by the browser.
$.ajax({
type: "GET",
url: "static/cache.js",
dataType: "text",
cache:false,
ifModified :true
});
另另。。加时间戳window.location=this.location.href+"#"+new Date().getTime()
4、<meta http-equiv="Pragma" contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出;
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-store"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
分享到:
相关推荐
浏览器缓存机制介绍与缓存策略剖析 浏览器缓存机制是指浏览器在请求资源时,对已经请求过的资源进行缓存,以便下次请求时可以直接从缓存中获取,从而提高页面加载速度和减少服务器的压力。本文将详细介绍浏览器缓存...
HTTP+JS+浏览器缓存技术 浏览器缓存是指浏览器在本地磁盘上存储的静态资源文件,包括HTML、CSS、JavaScript、图片等,以便下一次请求时可以直接从缓存中读取,从而提高网站性能和浏览器速度。浏览器缓存机制可以...
对于使用Prototype.js或其他JavaScript库进行Ajax开发的开发者而言,了解并掌握如何规避浏览器缓存机制至关重要。通过在请求URL中添加随机参数或改变请求方式为POST,可以有效解决因缓存而导致的重复请求失效问题,...
浏览器缓存是Web浏览过程中的一个重要部分,它存储了用户访问过的网页资源,如图片、JavaScript文件和CSS样式表等,以减少网络延迟,提升用户体验。在负载测试中,正确配置浏览器缓存能帮助我们更好地模拟真实的用户...
浏览器缓存是网络浏览的重要组成部分,它帮助用户快速加载先前访问过的网页,通过存储静态资源如图片、JavaScript和CSS文件,减少对服务器的请求。本文将深入探讨浏览器缓存的工作原理,以及如何使用“浏览器缓存...
Chrome浏览器缓存查看导出工具是一款专为用户设计的实用软件,它允许用户方便地查看、管理和导出Chrome浏览器中的缓存数据。这款工具对于开发者、网站管理员以及那些需要全面了解浏览器缓存工作原理的人来说非常有用...
浏览器缓存是网络浏览的重要组成部分,它用于存储网页的静态资源,如图片、JavaScript文件、CSS样式表等,以便在用户再次访问同一页面时能够快速加载,提高网页的响应速度和用户体验。`ChromeCacheView`是一款实用的...
本文介绍了几种使用JavaScript清除浏览器缓存的方法,包括使用meta标签、表单临时缓存清理、利用AJAX请求更新缓存、应用随机数或时间戳以及后端脚本清除浏览器缓存。 1. 使用meta标签清除缓存 开发者可以通过在HTML...
例如,设置Cache-Control为`no-cache`或`no-store`可以防止浏览器缓存页面,`must-revalidate`则要求每次请求都验证资源是否更新。 2. **HTML5的Service Worker**:Service Worker是一种在浏览器后台运行的脚本,它...
在 Web 开发中,浏览器缓存是非常重要的一部分,它可以提高网站的加载速度和执行效率,但同时也带来了许多问题,例如当服务端修改了 js、css 等文件时,客户端无法更新,这就需要我们采取一些方法来解决这些问题。...
Httpwatch是一款强大的工具,用于深入分析浏览器缓存的工作情况。 在Web应用程序的层次结构中,缓存可以存在于多个级别,如数据库缓存、持久层缓存(如Hibernate的一级和二级缓存)、业务层缓存以及浏览器缓存。...
为了避免由于浏览器缓存导致的开发过程中出现的问题,开发人员需要确保每次修改文件后都能立即看到效果。此时就需要使用方法来清除浏览器的缓存。 ### 使用`jQuery.ajaxSetup({cache:false})`清除缓存 #### 代码...
Chrome浏览器缓存查看工具是一款专为用户设计的实用软件,旨在帮助用户轻松访问和管理Google Chrome浏览器中的缓存数据。这个工具允许用户查看并分析在浏览网页时存储的各种资源,如图片、音频、视频和文档等。对于...
1. **减少网络带宽消耗**:通过缓存重复使用的资源(如HTML页面、图片、JavaScript等),可以避免不必要的网络传输。 2. **降低服务器压力**:当资源被缓存后,不再需要频繁地从服务器获取同样的内容,从而减少了...
在网页开发中,浏览器缓存机制是为了优化加载速度,但是有时会导致问题,比如服务器端更新的内容无法及时反映到客户端。为了防止这种情况,可以通过设置HTTP响应头来禁止浏览器缓存当前页面。以下是三种常用的响应头...
浏览器缓存是网络资源管理的重要组成部分,它在提高网页加载速度和降低服务器负载方面起着至关重要的作用。红外遥控(infrared remote)可能是指一种利用红外技术进行远程控制的应用,通常用于电视、空调等家用电器...
浏览器缓存存储了访问过的网页的静态资源,如图片和JavaScript文件,以加快后续访问的速度。然而,有时缓存可能会导致问题,比如显示旧版本的网页或者占用过多硬盘空间,这时就需要清理。通过使用这样的脚本,用户...
Chrome浏览器缓存提取工具是一种专门用于从Google Chrome浏览器的本地存储缓存中检索和提取数据的实用程序。在日常互联网浏览中,Chrome会自动下载并存储网页的各种元素,如图片、视频、JavaScript文件等,以便在...
在互联网高速发展的今天,浏览器缓存作为加速网页加载速度的重要手段,已经成为网络浏览不可或缺的一部分。用户在访问网页时,浏览器会将部分网页资源,如图片、CSS样式表以及JavaScript文件等,存储在本地计算机上...