levysnail 2013-03-28
代码:
vari;
for(i=0;i<10;i++){
ajaxServise(i);
}
在for循环中调用ajax方法补充页面上的数据,这样写是错误的,他不会每执行一次for循环就执行一次ajax方法,而是等for循环结束才去执行ajax方法,所以导致ajax只被执行一次。然而当修改如下:
for(i=0;i<10;i++){
alert("aa");
ajaxServise(i);
}
与上面不同的是在每次调用的时候都弹出一个窗体alert("内容随意")这样就可以在页面正确显示内容而不是一条内容
原因:原因就是for循环在JS中是单线程的,他会在for循环结束之后然后执行下一步,一步一步进行实现,而alert切断循环,让程序响应一次,从而再次调用ajax方法,然而在程序当中我们却不能让alert方法出现。
解决办法:
vari=0;
varsum=10;
vartime;
ajaxServise(i){
if(i==sum){
clearTimeout(time);
}
i=i+1;
time=setTimeout(ajaxServise(),10);
……………………
………………
…………
……
}
这里用setTimeout(AJAX())方法进行调用,setTimeout会当此方法执行完毕然后再次执行AJAX()方法,用setTimeout与clearTimeout配合完美解决此问题。
PS:setTimeout是伪多线程。
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
本文实例讲述了php+ ajax 实现的写入数据库操作。分享给大家供大家参考,具体如下:。<input class="tel" type="text" placeholder="请输入您的手机号码&q