页面不断发http请求时,同一个请求URL,会被IE浏览器缓存,第二次及之后的请求都是直接从缓存中取结果,不会到server端处理请求。
解决方法:
在发http请求时,在URL中加一个Random随机数做为请求参数,该随机数由当前系统时间产生:new Date().getTime(),当页面发请求时,由于每次的URL地址不同,所以IE会将它当作不同的请求处理,而不再从缓存中取。
例:
场景- jsp页面ajax发请求
1、不断发http请求:
setInterval("watchProgress()", 5000); //每隔5秒调用watchProgress函数,直接到遇到 clearInterval()方法
2、ajax处理请求:
function watchProgress(){
$.ajax({
url: "FileUploadAction.do?method=watchFileUploadProgress",
contentType: "application/x-www-form-urlencoded; charset=UTF-8", //表示客户端提交给服务器文本内容的编码方式 是URL编码,即除了标准字符外,每字节以双字节16
//进制前加个“%”表示
dataType : "JSON",
data : {"timestamp" : new Date().getTime()},
success: function(data) {
//..............
},
error: function() {
//...................
}
});
}