Jquery $ .ajax导致浏览器冻结一秒钟

时间:2011-06-28 18:30:46

标签: javascript jquery

所以我有一个$ ajax函数,它转到一个URL并获取多个json对象,我将它们转换为div。我有大约50个对象,并且我每隔10秒使用setInterval调用$ ajax函数,这样它就可以获得我为div制作的每个json对象的更新。我注意到每次执行$ ajax函数时,浏览器会冻结一两秒钟。我如何最大限度地减少/消除冻结,或者是否有更好的方法来实现我的目标?

4 个答案:

答案 0 :(得分:0)

Dom操作会导致浏览器冻结。尝试返回要更新的div而不仅仅是数据,这样您所做的就是替换当前节点。我们的想法是尽量减少dom的互动。

答案 1 :(得分:0)

异步调用不会“冻结”浏览器。如果您已经检查过异步执行AJAX调用(默认方法),则应检查将JSON响应转换为div的过程。此过程不是异步的,可能会阻止其他操作。

答案 2 :(得分:0)

我们应该看看你的代码,如果你想发布它,寻找任何奇怪的东西,但你可能会遇到以下问题之一:

答案 3 :(得分:0)

$ ajax可能不是导致你冻结的原因。 $ ajax异步调用您的Web服务器,因此不应阻止您的浏览器。如果你每次调用都要重新创建50个对象,这肯定会导致冻结。仅在视图发生更改时才更新。

至于更好的方法,我建议使用像backbone.js这样的库来处理为您修改视图层。