Ajax请求如何避免缓存问题
发布日期:2021-06-30 21:30:08 浏览次数:2 分类:技术文章

本文共 629 字,大约阅读时间需要 2 分钟。

  • 一、为什么会有缓存问题

1、当Ajax第一次发送请求后,会把请求的URL和返回的响应结果保存在缓存内,当下一次调用Ajax发送相同的请求时(URL完全相同,参数完全相同),浏览器就不会与服务器交互,而是直接从缓存中把数据取出来,这是为了提高页面的响应速度和用户体验,(服务端也会收到请求响应304)。

2、浏览器会自作主张的把所有异步请求来的文件缓存,当下一次请求的URL和之前的一样,那么浏览器将不会发送这个请求,而是直接把缓存的内容当做xhr.responseText。

注意:post 请求方式不会被缓存,只有 get 请求方式才会被缓存。

  • 二、、如何避免缓存问题

1、随机数

// 获取随机数var data = Math.random().toString().substring(2);

在我们发送Ajax请求的时候,在URL地址后面加上随机数当作参数传递的时候,就会被客户端认为是不同的请求,这时候就会去请求服务端,获取新的数据。

2、时间戳

// 获取当前时间戳var data = Date.now();

其实和上面第一种方法差不多了,也就是在URL地址后面加上当前的时间戳作为参数传递,客户端就会认为是不同的请求,这时候就会去请求服务端,获取新的数据。

  • 其实两次实现的方法都差不多了,思想就是,既然不能改变Ajax请求的URL路径,那就通过将get请求的参数做成每次都不一样,这样就不会被浏览器缓存了

如您在阅读中发现不足,欢迎留言!!!

转载地址:https://lizhou.blog.csdn.net/article/details/99236842 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:HTTP状态代码一览表
下一篇:JavaScript中监听鼠标滚轮事件

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月21日 05时12分11秒