Ajax IE缓存和网页超时问题

  Ajax IE缓存和网页超时问题

IE缓存问题网页超时问题:

  在默认情况下,IE会针对请求地址缓存Ajax请求的结果。换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。在某些情况下,这种默认的缓存机制并不是我们希望的

解决方法1:可以通过在请求时在URL后面添加当前的时间来解决IE缓存的问题

xhr.open('GET','http://127.0.0.1:8000/ie?t='+Data.now());
//加一个时间

解决方法2:定制响应,响应头来解决问题:

/*
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 03 Jan 2013 12:54:56 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 4.0
Cache-Control: no-cache 
Pragma: no-cache
Expires: -1
Content-Type: text/html; charset=utf-8
Content-Length: 10
Connection: Close
8:54:56 PM
*/
在ajax发送请求前加上 xhr.setRequestHeader("If-Modified-Since","0")。
在ajax发送请求前加上 xhr.setRequestHeader("Cache-Control","no-cache")。

 

网页超时问题:

//1.超时设置:
xhr.timeout=2000;
//超时回调
xhr.ontime=function(){
    alert("网络异常")
}
xhr.onerror=function(){
    alert("网络错误")
}

 

posted @ 2020-10-18 20:58  焕不涣  阅读(133)  评论(0编辑  收藏  举报