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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因相关的知识,希望对你有一定的参考价值。

参考技术A 看到别人写的JS,ajax请求地址后加随机参数,比如XXXX?t=
+
new
Date().getTime()。
一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存。
浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存。当url请求地址不变时,
有时候会导致浏览器不发送请求,直接从缓存中读取之前的数据。
如果数据改变了,而没加随机数,读取的数据会跟之前一样。
加上随机数,就是欺骗浏览器url改变了,会每次都向服务器发送请求而不去读缓存

ie浏览器下get方式获取数据无效问题

在ie浏览器用get方式获取数据时因为发送得到参数地址都是一样的,所以浏览器会优先从缓存获取数据,而不去服务器请求数据,post由于参数不同所以不会影响。

解决方法:

1.  Internet选项--浏览历史记录--设置-- Internet 临时文件的选项改为每次访问网页时也可以

2. 在ajax请求的页面后加随机数

  例:URL=“t=”+Math.random();//或者new Date();

  或: “?timestamp=”+new Date().getTime();

  最好的方法:用一个公共的ajax方法设置{cache:false;}就不需要每个接口写随机数了;

以上是关于Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因的主要内容,如果未能解决你的问题,请参考以下文章

Django:在 AJAX 请求后加载模板

js 跳转 每次跳转的地址都不相同,为啥

ie浏览器下get方式获取数据无效问题

js判断用户是输入的地址请求的路径

如何防止 AJAX 请求排队? [复制]

java,防止用ajax中的url 直接访问,怎么处理呀?