[英]AJAX only loading in IE once
我无法弄清楚为什么下面的AJAX代码只会在我的php页面中加载一次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相当新,并且已经研究过这个问题并实现了我能找到的所有解决方案,我们将非常感谢任何帮助。
更新,10/21/2011
我已经检查了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代码很好。 它发生的原因是浏览器缓存。 尝试使用您的请求发送随机值并从php端返回time()以查看它是否实际调用了php脚本。
试试这个:
setInterval( randomize, 2000 );
你也没有发送任何字符串。 和代码的第一部分:
if (str=="")
{
document.getElementById("dispeople").innerHTML="";
return;//return, only run once....
}
也许有一个原因你没有使用它,但我强烈建议你查看jQuery 。 该库会自动消除所有这些浏览器不兼容问题,因此您只需担心自己的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.