慢慢追加li,for a循环与ajax调用后让它变慢?

时间:2012-10-10 13:49:32

标签: javascript jquery

对于带有ajax调用的循环,缓慢循环?

  for (var x = this.from; x < this.emax; x++) { this.list.append('<li></li>'); }


  jQuery.ajax({
  .....

如何,它会在for循环的同时启动ajax请求。所以Chrome 呛了一下。我不想那样,它可以修复吗?

2 个答案:

答案 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({

      .........
}); }