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都会执行这条语句就是不需要保存缓存记录。

原文地址:https://www.cnblogs.com/psxiao/p/11561557.html

时间: 2024-10-10 17:33:49

ajax中浏览器的缓存问题解决方法的相关文章

win7中VS2010中安装CSS3.0问题解决方法

win7中VS2010中安装CSS3.0问题解决方法 在安装Standards Update for VS2010 SP1后,VS2010中没有CSS3.0问题,以下是我的解决方法 1.首先去官网下载 CSS 3 Intellisense Schema 网址:http://visualstudiogallery.msdn.microsoft.com/7211bcac-091b-4a32-be2d-e797be0db210/view/Discussions/1 2.安装 3.Win+R 输入 re

linux中手动释放缓存的方法

linux中手动释放缓存的方法  Linux释放内存的相关知识介绍: 在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好.但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空 间影响性能,例如当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.,此时就需 要执行释放内存(清理缓存)的操作了. Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的

安卓手机微信中清除页面缓存的方法

安卓手机微信中清除页面缓存的方法只在安卓中有效,ios微信刷新页面即可清除缓存. 1.微信中打开网页 http://debugx5.qq.com. 2.滑动到底部,如图所示勾选4个缓存选项,点击清除即可. 此外,该网页还提供了其他功能,如使用VConsole进行调试等. 原文地址:https://www.cnblogs.com/luoyihao/p/12207327.html

9中浏览器端缓存

浏览器缓存(Browser Caching)是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和浏览器快速地读取本地数据,整体上加速网页展示给用户.浏览器端缓存的机制种类较多,总体归纳为九种,这里详细分析下这九种缓存机制的原理和使用场景.打开浏览器的调试模式->resources左侧就有浏览器的8种缓存机制.    一.http缓存   http缓存是基于HTTP协议的浏览器文件级缓存机制.即针对文件的重复请求情况下,浏览器可以根据协议头判断从服务器

微信浏览器取消缓存的方法

做微信公众号和调试手机页面的时候,避免不了页面要跳转到微信浏览器打开,调试阶段,android版微信浏览器一直都默认缓存html静态资源,每次静态资源变化甚至新内容发布的时候在微信浏览器上都极有可能不能更新,很多时候要清理微信缓存才能看到效果,很是烦人.部分客户装了QQ浏览器,微信实际调用的是QQ浏览器,有时候甚至光清理微信缓存都无效,QQ浏览器的缓存也要清. 经过一番探索微信浏览器确实是在webview的上层做的缓存:就是如果请求过了这个地址,就会存在本地,之后不取线上了. 解决方案是在调试阶

jQuery中ajax的使用和缓存问题解决 $getjson 与$get都会被IE缓存

原文地址:http://www.cnblogs.com/fullhouse/archive/2012/01/17/2324842.html 1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的)防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date()

AngularJS 中设置 AJAX get 请求不缓存的方法

var app = angular.module('manager', ['ngRoute']); app.config(['$routeProvider', function($routeProvider) { $routeProvider .when("/index", { templateUrl: "/Templates/index.html", controller: IndexCtrl }) .when("/search", { tem

web项目中的跨域问题解决方法

一种是JSONP 一种是 CORS. 在客户端Javascript调用服务端接口的时候,如果需要支持跨域的话,需要服务端支持. JSONP的方式就是服务端对返回的值进行回调函数包装,他的优点是支持众多的浏览器, 缺点是仅支持Get的方式对服务端请求. 另一种主流的跨域方案是CORS,他仅需要服务端在返回数据的时候在相应头中加入标识信息.这种方式非常简便.唯一的缺点是需要浏览器的支持,一些较老的浏览器可能不支持CORS特性. 跨域支持是创建WebService时应该考虑的一个功能点,文中是使用Se

js清除浏览器的缓存的方法

许多的项目当中,一旦改动了js的代码,必须在浏览器当中重新加载数据,清理缓存,比较麻烦.网上找了很多的清除浏览器的方法,首先是在 html的头部加上meta的属性,但是发现并没有什么用处,后来看到说在js上增加随机的数字或者版本号就可以解决这个问题,无奈不知道怎么加,现在终于知道了如何在js上直接给他加上版本或者随机数字,方法很简单,无奈不知道以前为啥就不知道这样加,还弄了很多种错误的想法. 代码如下 <script> document.write("<s" + &q