2009-09-10 31 views
2

我有用jsp和jQuery编写的聊天应用程序。对于在某个URL中不断发布请求的线程,我使用了setTimeout方法。我的浏览器在一段时间后挂起,CPU利用率非常高。如何提高jQuery的性能

有什么办法可以提高JS的性能吗?

+9

我怀疑你的设计。 – 2009-09-10 14:55:37

+0

请张贴一些代码。我从来没有jQuery挂在我身上。 – hasen 2009-09-10 15:07:21

+0

99%的时间,提高JS性能的唯一方法是编写更好的代码。我猜你没有完全理解语言和/或它是如何工作的。 – 2009-09-10 15:15:35

回答

0

您是否尝试过使用Firebug进行调试?您可以使用它来调试JavaScript,监控请求和响应等等。

-2

嗯,我跑这个低谷这里之前是我做过什么(此无关的jQuery的方式):你的情况

try { 
    window.clearInterval(x); 
} catch(e) { 
    // do nothing 
} 
x = setInterval(Update, 1000); 

你应该clearTimeout :)

试试这个:

refresh() { $.post("./chatServlet", { message: "hxci", name: $("#author").val(), event: "AUTOROOMMESSAGE", roomname: $("#select").val() }, function(xml) { $("#msg").empty(); addMessages(xml); }); try { window.clearInterval(x);} catch(e) {  }  x = setInterval(refresh, 3000); } 
+0

因为我们在这里讨论优化,所以我应该提到在调用clearInterval之前没有理由检查x为null。这只是我们不需要的额外周期! – 2009-09-10 15:17:49

+0

乔希斯托多拉:第一次这将运行区间将是无效,如果你拨打window.clearInterval(x)和x是空... ,真的,你认为检查null是一个PERF处罚? – 2009-09-10 15:51:33

+0

为什么要清除间隔并将其设置为新的?要么你应该总是使用'setTimeout()'或者让间隔运行。 – 2009-09-10 17:08:01