我不明白为什么下面的AJAX代码只会从我的php页面加载信息一次,在IE中,在所有其他浏览器中都没有问题。AJAX只在IE中加载一次
<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/mootools代替。它们很好地将原生浏览器的ajax功能包装到一个小包中,所以你的整个脚本可以折叠成4或5行代码......并且它们还补偿了浏览器之间的所有变化,所以你不会卡住与“if(ie)... else”monstrosities。 –
谢谢我正在寻找使用jquery而不是现在 – pivot