前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >注意IE下Ajax Get缓存的问题

注意IE下Ajax Get缓存的问题

作者头像
javascript.shop
发布2019-09-04 16:34:05
8760
发布2019-09-04 16:34:05
举报
文章被收录于专栏:杰的记事本

在前端项目开发中,使用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设计,二是因为这种方式同样会每次请求服务器,可能会没有利用到浏览器自带的缓存功能,但是可以解决这个问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年3月20日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 起源:
  • 禁止浏览器缓存常用的方法:
    • 1. 在get请求的URL 参数后面加时间戳或者随机数
      • 2. 用post请求替代get请求
      相关产品与服务
      Serverless HTTP 服务
      Serverless HTTP 服务基于腾讯云 API 网关 和 Web Cloud Function(以下简称“Web Function”)建站云函数(云函数的一种类型)的产品能力,可以支持各种类型的 HTTP 服务开发,实现了 Serverless 与 Web 服务最优雅的结合。用户可以快速构建 Web 原生框架,把本地的 Express、Koa、Nextjs、Nuxtjs 等框架项目快速迁移到云端,同时也支持 Wordpress、Discuz Q 等现有应用模版一键快速创建。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档