我遇到以下代码问题。我想在它改变时显示文件的索引(test.txt)。 虽然它使用Mozilla,但使用IE9似乎settimeout()不起作用。
<div id="auto">xxx</div>
<script type="text/javascript" src="jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready( function () {
$('#auto').load('test.txt');
refresh1();
});
function refresh1() {
setTimeout ( function() {
$('#auto').load('test.txt');
refresh1();
},200);
}
</script>
我使用“meta”来防止IE兑现,但仍然没有成功。我用了
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
如果我把IE放在一边并使用Mozilla上面的代码工作,我的问题可以解决,但问题是我找不到一种方法(一个例子非常感谢)使用Mozilla读/写文件。是否有与Mozilla / Chrome等效的ActiveX?我尝试了一些OSFile的代码,但没有运气。我想避免更改浏览器。如果我们能够找到一个使用IE的解决方案来阅读“更改”文件的上下文而没有页面刷新我将非常高兴:)
答案 0 :(得分:1)
在再次调用complete
之前,您应该使用refresh
回调等待响应。还要考虑刷一点慢,比如2秒。
$(document).ready( function () {
refresh1();
});
function refresh1(responseText, textStatus, XMLHttpRequest) {
// will be used as the complete callback
setTimeout ( function() {
$('#auto').load('test.txt', refresh1);
}, 200);
}
编辑:IE也可以有意识地缓存您的请求,使用Pragma: no-cache
标头回复,或者在document.ready之前使用jQuery.ajaxSetup({ cache: false });
,或者使用.load('test.txt?' + new Date().getTime(), refresh1)
中的评论中说明。
参考:
答案 1 :(得分:0)
$(document).ready( function () {
reload_interval = setInterval(function() {
$('#auto').load('test.txt');
}, 200)
}
这甚至可以在IE中使用。
答案 2 :(得分:0)