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("网络错误") }