我有用jsp和jQuery编写的聊天应用程序。对于在某个URL中不断发布请求的线程,我使用了setTimeout方法。我的浏览器在一段时间后挂起,CPU利用率非常高。如何提高jQuery的性能
有什么办法可以提高JS的性能吗?
我有用jsp和jQuery编写的聊天应用程序。对于在某个URL中不断发布请求的线程,我使用了setTimeout方法。我的浏览器在一段时间后挂起,CPU利用率非常高。如何提高jQuery的性能
有什么办法可以提高JS的性能吗?
检查这一项: http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx#tip1
它有一些很好的建议,如:
您是否尝试过使用Firebug进行调试?您可以使用它来调试JavaScript,监控请求和响应等等。
嗯,我跑这个低谷这里之前是我做过什么(此无关的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); }
因为我们在这里讨论优化,所以我应该提到在调用clearInterval之前没有理由检查x为null。这只是我们不需要的额外周期! – 2009-09-10 15:17:49
乔希斯托多拉:第一次这将运行区间将是无效,如果你拨打window.clearInterval(x)和x是空... ,真的,你认为检查null是一个PERF处罚? – 2009-09-10 15:51:33
为什么要清除间隔并将其设置为新的?要么你应该总是使用'setTimeout()'或者让间隔运行。 – 2009-09-10 17:08:01
我怀疑你的设计。 – 2009-09-10 14:55:37
请张贴一些代码。我从来没有jQuery挂在我身上。 – hasen 2009-09-10 15:07:21
99%的时间,提高JS性能的唯一方法是编写更好的代码。我猜你没有完全理解语言和/或它是如何工作的。 – 2009-09-10 15:15:35