【发布时间】:2014-05-13 18:18:18
【问题描述】:
我试图在循环中显示从数据库中获取的数据,并且在循环之间我调用函数并发送 ajax 请求它不起作用。实际上它仅在我使用警报命令时才显示。如果我使用了警报,那么浏览器会显示 div,然后如果我单击确定则显示警报,然后它会显示第二个 div,然后再次显示警报。 这是js代码
function like(divid,id,session) {
var orgnldiv=document.getElementById(divid);
var ndiv=document.createElement('DIV');
var idd=id+5000;
ndiv.id =idd;
ndiv.className="likeclass";
orgnldiv.appendChild(ndiv);
var dynamicdiv=document.getElementById(idd);
var span=document.createElement('span');
var spanid=idd+5000;
span.id=spanid;
span.className="spanclass";
dynamicdiv.appendChild(span);
var xmllhttp15;
if (window.XMLHttpRequest) {
xmlhttp15=new XMLHttpRequest();
} else {
xmlhttp15=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp15.onreadystatechange = function() {
if (xmlhttp15.readyState==4 && xmlhttp15.status==200) {
document.getElementById(spanid).innerHTML=xmlhttp15.responseText;
}
}
xmlhttp15.open("GET","spancount.php?postid="+id+"&userid="+session);
xmlhttp15.send();
// alert(spanid);
}
请告诉我这个问题的原因是什么,我的代码只有在我使用警报时才能正常工作
【问题讨论】:
-
更好的选择是使用 jquery ajax。你的代码看起来不错。也许问题在于您提出了太多请求。您可以在此代码中尝试的另一件事是使请求同步,即
-
xmlhttp15.open("GET","URL","TRUE");
-
@AmanGupta 可以对许多请求提出问题吗?
-
在某种程度上是的。问题是 Ajax 的概念是为了在页面上进行更新,而刷新整个页面实际上是一种浪费!对此发表解释:)
标签: javascript ajax