为什么setTimeout没有'我不在IE上工作
Why setTimeout doesn't work on IE
一个非常简单的网页,里面有一个空的div:
<div id="joblist">
</div>
<script type="text/javascript">
readJobList();
</script>
和javascript:
function handleReadJobList(text) {
var e = document.getElementById("joblist");
e.innerHTML = text;
setTimeout(function(){readJobList();}, 1000);
}
function readJobList() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
handleReadJobList(xhttp.responseText);
}
}
xhttp.open("GET", "joblist.ajax", true);
xhttp.send();
}
当浏览器加载页面时,将调用readJobList第一次,它发送一个HTTP请求。handleReadJobList将读取响应文本,更新div的内容,并使用setTimeout一秒钟后调用readJobList。这是一个循环,尽管它是异步的。
此代码在Firefox、Chrome和Opera上运行良好。但在IE11上不起作用。我不知道为什么。仅div的内容更新了一次。它将不再更新。
如何修复?
如果AJAX适用于除IE之外的所有浏览器,那么这可能是因为IE正在缓存结果。您可以使用破坏缓存的随机查询参数(如Phil所建议的),或者更好地发送正确的头部来告诉IE(和所有其他浏览器)不要缓存AJAX响应。
关于覆盖所有主要浏览器的已知工作标题集,请参阅以下答案:如何在所有浏览器中控制网页缓存?
相关文章:
- Target=_blank don'我不在mozilla和IE工作
- jQUery Code没有'我不在IE工作
- 为什么这个书签脚本是't在IE工作
- 类构造函数super()没有'我不在IE工作
- onmousemove=null不会'我不在IE工作
- execCommand('另存为',true,'data.csv');不在IE工作
- 努力让第n个有悬停的孩子在IE工作
- Javascript Groovy按钮没有'我不在IE工作
- 属性='值'jquery选择没有'我不在IE工作
- atob不在IE工作
- 将图像附加到富文本编辑器dosen'我不在IE工作
- javascript没有'I don’我一直在IE工作
- 使用插件制作移动滑动导航,但它没有'我不在IE工作
- Video.js没有'我不在FF、IE工作
- dojo on.emit”;点击“;以及“;改变“;不在IE工作
- 为什么这个工具提示没有'不在IE工作吗?错误:应为对象
- document.getElementById('a').click()没有't在IE工作
- 插入符号插件的jquery;我不在IE工作
- 聚合物:点击事件在IE工作,但不是Chrome.如何修复
- 如何使IE工作预期与正则表达式提供的函数参数在拆分函数