javascript - 缓慢附加 li,for 循环与 ajax 调用后使其变慢?

标签 javascript jquery

For循环后调用ajax,for循环速度慢吗?

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


  jQuery.ajax({
  .....

不知怎的,它会在 for 循环的同时启动 ajax 请求。所以 Chrome 窒息了一秒钟。我不想要这个,可以修复吗?

最佳答案

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

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

(话虽如此,为什么你首先要附加一堆空的 LI?如果它们是 Ajax 请求所获取的内容的占位符,你可能会考虑让其成功回调添加它们。只是一个想法.)

关于javascript - 缓慢附加 li,for 循环与 ajax 调用后使其变慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820947/

相关文章:

javascript - jQuery ID 选择器 ("#id") 返回数组

javascript - Jquery - 在之后使用时获取选择器

javascript - Java脚本如何编写传递给$.modal()的if条件

javascript - "Rebind"调用 .unbind() 后出现 slider ?

javascript - 如何从数组中获取唯一的年份?

javascript 函数说它不存在,当它存在时

javascript - Bluebird 中 Promise 链数组的串行执行

javascript - 用于聊天的 Ajax 用户键入消息

javascript - svg 填充的平滑动画

JavaScript anchor 导航