AJAX IE7清除缓存

前端之家收集整理的这篇文章主要介绍了AJAX IE7清除缓存前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
AJAX缓存页面,就是相同的URL重复提交,只会执行第一次的,后面的不执行,这会给AJAX实时读取数据带来很大影响
在网上找了好多资料后,总结一下
1:在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数
在javascript发送的URL后加上t=Math.random()
当然,不是直接把t=Math.random()拷贝到URL后面,应该像这样:URL+"&"+"t="+Math.random();
2:在XMLHttpRequest发送请求之前加上XMLHttpRequest.setRequestHeader("If-Modified-Since","0")
一般情况下,这里的XMLHttpRequest不会直接使用
你应该可以找到这样的代码
XXXXX.send(YYYYYY);
那么,就把它变成
XXXXX.setRequestHeader("If-Modified-Since","0");

第二种方法感觉挺好

@H_502_30@

function send_request(url) {//初始化、指定处理函数、发送请求的函数@H_502_30@ http_request = false;@H_502_30@ //开始初始化XMLHttpRequest对象@H_502_30@ if(window.XMLHttpRequest) { //Mozilla 浏览器@H_502_30@ http_request = new XMLHttpRequest();@H_502_30@ if (http_request.overrideMimeType) {//设置MiME类别@H_502_30@ http_request.overrideMimeType('text/xml');@H_502_30@ }@H_502_30@ }@H_502_30@ else if (window.ActiveXObject) { // IE浏览器@H_502_30@ try {@H_502_30@ http_request = new ActiveXObject("Msxml2.XMLHTTP");@H_502_30@ } catch (e) {@H_502_30@ try {@H_502_30@ http_request = new ActiveXObject("Microsoft.XMLHTTP");@H_502_30@ } catch (e) {}@H_502_30@ }@H_502_30@ }@H_502_30@ if (!http_request) { // 异常,创建对象实例失败@H_502_30@ window.alert("不能创建XMLHttpRequest对象实例.");@H_502_30@ return false;@H_502_30@ }@H_502_30@ http_request.onreadystatechange = processRequest;@H_502_30@ // 确定发送请求的方式和URL以及是否同步执行下段代码@H_502_30@ http_request.open("GET",url,true);@H_502_30@ http_request.setRequestHeader("If-Modified-Since","0"); http_request.send(null); }

猜你在找的Ajax相关文章