`

Ajax解决浏览器的缓存问题

 
阅读更多
今天做项目,几乎所有的提交都是通过ajax来提交,我测试的时候发现,每次提交后得到的数据都是一样的,调试可以除后台
代码的问题,所以问题肯定是出在前台。每次清除缓存后,就会得到一个新的数据,所以归根到底就是浏览器缓存题。纠结了很
久,终于解决了,在这里总结一下。

我们都知道ajax能提高页面载入的速度主要的原因是通过ajax减少了重复数据的载入,也就是说在载入数据的同时将数据缓存到
内存中,一旦数据被加载其中,只要我们没有刷新页面,这些数据就会一直被缓存在内存中,当我们提交 的URL与历史的URL一致
时,就不需要提交给服务器,也就是不需要从服务器上面去获取数据,虽然这样降低了服务器的负载提高了用户的体验,但是我们
不能获取最新的数据。为了保证我们读取的信息都是最新的,我们就需要禁止他的缓存功能。

解决方案有如下几种:

1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。

2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。

3、在URL后面加上一个随机数: "fresh=" + Math.random();。

4、在URL后面加上时间搓:"nowtime=" + new Date().getTime();。

5、如果是使用jQuery,直接这样就可以了$.ajaxSetup({cache:false})。这样页面的所有ajax都会执行这条语句就是不需要保存缓
存记录。
分享到:
评论

相关推荐

    如何解决Ajax请求结果的缓存问题说明

    目录 一、问题重现 二、通过为URL地址添加后缀的方式解决问题 三、通过JQuery的Ajax设置解决问题 四、通过定制响应解决问题一、问题重现我们通过一个ASP.NET MVC应用来重现IE针对Ajax请求结果的缓存。在一个空ASP...

    浅谈Ajax请求与浏览器缓存

    下面小编就为大家带来一篇浅谈Ajax请求与浏览器缓存。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Ajax中浏览器的缓存问题解决方法

    我们在做项目中,一般提交请求都会通过ajax来提交,但是测试的时候发现,每次提交后得到的数据都是一样的,调试可以排除后台代码的问题,所以问题肯定是出在前台

    Ajax清除浏览器js、css、图片缓存的方法

    为了减小浏览器与服务器之间网络传输压力,往往对静态文件,如js,css,修饰的图片做cache,也就是给这些文件的HTTP响应头加入 Expires和Cache-Control参数,并指定缓存时间,这篇文章详细介绍Ajax清楚浏览js、Css、...

    Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因

    一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存。 浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存。当url请求地址不变时, 有时候会导致浏览器不发送请求,直接从缓存中读取之前的数据。 ...

    IE下Ajax缓存问题的快速解决方法(get方式)

    其进行缓存了。网上搜了很多解决方案,一大把,下面是我认为比较全面的解决方案。主要分为客户端解决和服务端解决。 1.客户端解决方案IE访问策略:Internet选项–浏览历史记录–设置– Internet 临时文件的选项改为...

    当用户退出点击浏览器后退仍可回到原来页面的解决方案

    解决方案1:禁用缓存,前一次使用的方法,在电脑上各浏览器都没问题,但在ipad、安卓手机上仍有问题 解决方案2:禁用浏览器后退键 [removed] window.history.forward(1); 结果和方案一一样的结果,pad上没效果 ...

    解析浏览器端的AJAX缓存机制

    里我们来解析浏览器端的AJAX缓存机制,来共同看一下AJAX缓存与HTTP缓存的关系以及AJAX缓存的刷新时间问题

    ajax调用中ie缓存问题解决方法

    ajax请求调用的过程中发现的问题:后台请求是一个简单的.aspx文件,而这个页面又没有考虑过缓存的影响,使用ajax调试的时候发现有时候根本不走后台代码直接返回结果了,所以估计是受到浏览器缓存的影响。网上搜了一下...

    在开发AJAX过程中遇到的问题及解决方案

    在开发AJAX过程中遇到的问题及解决方案,浏览器缓存的问题。

    jQuery中ajax的使用与缓存问题的解决方法

    1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 POST则 认为是一个 变动性 ...

    ajax清除缓存问题.mht

    js脚本加时间戳,欺骗浏览器,防止不发送请求。。。。

    解析jquery中的ajax缓存问题

    现在我要在浏览器里读取缓存,因为ajax请求的数据很大,请求一次就够了。但是问题来了,在FF里面,是没有ajax缓存的,也就是每次都会触发ajax请求,这点和IE不一样。所以在这里就得注意,做个判断,阻止触发ajax事件...

    浅谈Ajax的缓存机制

    Ajax的缓存机制和浏览器处理资源时的缓存机制是一样的。 三条简单规则: 只要是URL相同的GET请求,浏览器会使用缓存(当然还要看服务器的Cache-Control/Expires/Last-Modified/ETag头的设置)。 只要是POST请求,...

    ASP.NET MVC中使用jQuery时的浏览器缓存问题详解

    尽管jQuery在浏览器ajax调用的时候对缓存提供了很好的支持,还是有必要了解一下如何高效地使用http协议。 首先要做的事情是在服务器端支持HTTP GET,定义不同的URL输出不同的数据(MVC里对应的就是action)。如果要...

    jQuery ajax cache缓存问题

    在jquery里面用$.ajax 然后, 指定ajax属性的时候, 使用了:’false... 例如:在浏览器地址栏输入: [removed]alert(‘false’?’true’:’false’); 结果将是:true。 直接结果:ajax请求不重新去请求, 而是

Global site tag (gtag.js) - Google Analytics