Ajax中传数据中针对IE缓存机制方法

作者: Darren 分类: javascript 发布时间: 2019-06-15 23:08

IE浏览器设计了一套缓存机制 出发点是好的:

节省带宽 用户不需要花费带宽就可以看见结果

节省时间 用户可以马上看见访问结果 无需等待

 

这套缓存机制导致浏览器并没有发送真正的请求 没有到服务器取得真实实时数据

用户可能看见”假”结果

 

禁用缓存机制 找出缓存机制触发的条件 打破这个条件

如果IE浏览器发送的一个请求地址 是之前请求过的地址 就会使用缓存结果

 

让每次发出请求的地址都不一样:

  • 在请求地址中加随机数
  • 在请求地址中加时间戳
  • 添加请求响应头

第一种:

 第一种:添加随机数解决缓存问题
                ajax.open('get', 'http://127.0.0.1:3000?'+"sum1="+sum1Obj.value+"&"+"sum2="+sum2Obj.value+"&_"+Math.random())

第二种:

第二种:添加时间戳解决缓存问题
                ajax.open('get', 'http://127.0.0.1:3000?'+"sum1="+sum1Obj.value+"&"+"sum2="+sum2Obj.value+"&_"+(new Date).getTime())

第三种:

第三种设置请求响应头
                ajax.open('get', 'http://127.0.0.1:3000?'+"sum1="+sum1Obj.value+"&"+"sum2="+sum2Obj.value)
                
                // 第三步发送请求
                ajax.setRequestHeader('If-Modified-Since','0')
                ajax.send()

%title插图%num

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注