专栏首页杰的记事本注意IE下Ajax Get缓存的问题

注意IE下Ajax Get缓存的问题

在前端项目开发中,使用get请求时,一定要考虑到 IE浏览器的缓存问题。。。

起源:

​ 常见的是ajax请求过一次以后,以后的相同url的get请求会存在下面这种情况:

  • 第一种情况:有时返回304,有时返回200;
  • 第二种情况:有时无论后台数据是否变化始终返回304,有时却始终返回200;同一套代码在不同浏览器间结果不同。

禁止浏览器缓存常用的方法:

1. 在get请求的URL 参数后面加时间戳或者随机数

$.ajax({ url: ‘http://localhost/api/list’, type: ‘get’, data: { _t: new Date().valueOf() //加时间戳 //_t: Math.random() 加随机数 }, success: function ( res ) { console.log(res); } }) 结果:这种方式虽然能解决IE始终返回304的问题,但实际上每个ajax都会去请求服务器,对web优化并非最佳的解决方案。

2. 用post请求替代get请求

结果: 有其他方式解决现场尝试其他方式解决,一是因为这种做法不符合RESTful API设计,二是因为这种方式同样会每次请求服务器,可能会没有利用到浏览器自带的缓存功能,但是可以解决这个问题。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 16-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案微信小程序篇

    https://www.cnblogs.com/yangfengwu/p/11200767.html

    杨奉武
  • 第三方应用如何在SAP Kyma上进行服务注册

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    Jerry Wang
  • Go 语言错误及异常处理篇(三):panic 和 recover

    前面学院君介绍了 Go 语言通过 error 接口统一进行错误处理,但这些错误都是我们在编写代码时就已经预见并返回的,对于某些运行时错误,比如数组越界、除数为0...

    学院君
  • Flutter版本玩Android(3)——文章详情页

    pushXXX表示跳转到下一页面,pop表示跳出当前页面,可以携带参数跳转。具体可以参考路由管理。

    用户1108631
  • 使用WordPress的Kyma plugin同Kyma断开连接的实现

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    Jerry Wang
  • Go 语言并发编程系列(一)—— 多进程、多线程与协程的引入

    在原生 PHP 中并没有并发的概念,所有的操作都是串行执行的、同步阻塞的,这也是很多人诟病 PHP 性能的原因,但是不支持并发编程的好处也是显而易见的:保证了 ...

    学院君
  • Source Code Pro 字体其实并不完美

    事情的起因是这样的,前两天我在服务器上看到一个莫名其妙的文件夹 ‐p,所以决定删了它,于是顺手就敲了 rm -rf -- -p。

    poslua
  • Flutter版本玩Android客户端(5)——微信公众号tab点击跳转

    在Flutter版本玩Android客户端(4)——知识体系tab点击跳转中,完成了主页面知识体系tab的点击跳转,本文主要完成微信公众号tab的跳转。效果如下...

    用户1108631
  • 如何把css'content的操作跟价值发挥到最大💢

    content属性需要与before及after伪元素配合使用,作用是可以定义伪元素所显示的内容,本文主要列举content的可选值及实用的案例与技巧?

    聪明的汤姆
  • WordPress的Kyma plugin HTML发送的connect请求是怎么投递到PHP的

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券