我不明白为什么下面的 AJAX 代码只会在 IE 中加载一次来 self 的 php 页面的信息,而在所有其他浏览器中都可以正常工作。
<script type="text/javascript">
var c=0;
function randomize(str)
{
if (str=="")
{
document.getElementById("dispeople").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("dispeople").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","randomize.php?q=" + Math.random(),false);
xmlhttp.send();
document.getElementById('txt').value=c;
c=c+1;
}
setInterval( "randomize()", 2000 );
</script>
我对使用 AJAX 相当陌生,并且已经研究了这个问题并实现了我能找到的所有解决方案,任何帮助将不胜感激。
更新,2011 年 10 月 21 日
我已经检查了 JQuery 并实现了它,但如果有人有任何建议,我仍然遇到同样的问题,这是我当前使用的代码:
<script type="text/javascript">
var c=0;
$.ajaxSetup ({
// Disable caching of AJAX responses
cache: false
});
setInterval(function() {
$.ajax({
type: "GET",
url: 'randomize.php?ck=' + (new Date()).getTime(),
cache: false,
success: function(data) {
$('#dispeople').html(data);
}
});
},2000);
</script>
谢谢
最佳答案
我认为你的 jquery 代码很好。这是由于 ie 浏览器缓存而发生的。尝试在您的请求中发送一个随机值,并从 php 端返回 time() 以查看它是否实际上正在调用 php 脚本。
关于php - AJAX仅在IE中加载一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7823864/