对于带有ajax调用的循环,缓慢循环?
for (var x = this.from; x < this.emax; x++) { this.list.append('<li></li>'); }
jQuery.ajax({
.....
如何,它会在for循环的同时启动ajax请求。所以Chrome 呛了一下。我不想那样,它可以修复吗?
答案 0 :(得分:1)
从我所看到的情况来看,浏览器通常不会更新页面,直到脚本处理完当前事件为止。这意味着Ajax请求将在实际呈现新LI之前启动,并且出现几乎同时发生。
一种解决方法是将.ajax
调用放在具有最小超时值的setTimeout
内。 0毫秒超时可能会这样做;如果没有,那么1会。重点是让调用排队,因此DOM更改会在它发生之前应用。
(尽管如此,为什么你首先要添加一堆空的LI?如果它们是Ajax请求获得的占位符,你可以考虑让它的成功回调添加它们。只是一个想法。)
答案 1 :(得分:1)
可能这是工作ı我不确定:
for (var x = this.from; x < this.emax; x++) { this.list.append('<li>
</li>').slow(200,function() {
jQuery.ajax({
.........
}); }