0

For循环与ajax调用之后,慢for循环?

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


  jQuery.ajax({
  .....

不知何故,它将在 for 循环的同时启动 ajax 请求。所以 Chrome 有点窒息。我不想这样,可以修吗?

4

2 回答 2

1

从我所见,浏览器通常不会更新页面,直到脚本完成处理当前事件。这意味着 Ajax 请求将在新的 LI 实际呈现之前启动,并且两者似乎几乎同时发生。

一种解决方法是将.ajax调用放在setTimeout具有最小超时值的 a 中。0 毫秒的超时可能会这样做;如果没有,那么 1 会。关键是让调用排队,以便在它发生之前应用 DOM 更改。

(话虽如此,你为什么要先附加一堆空的 LI?如果它们是 Ajax 请求得到的任何内容的占位符,你可以考虑让它的成功回调添加它们。只是一个想法。)

于 2012-10-10T13:58:35.037 回答
1

可能这是工作我不确定:

for (var x = this.from; x < this.emax; x++) { this.list.append('<li>
</li>').slow(200,function() {
     jQuery.ajax({

      .........
}); }
于 2012-10-10T14:01:23.043 回答