【发布时间】:2011-02-07 11:00:03
【问题描述】:
我的应用程序通过 Ajax 带来响应,并在每次刷新时创建 5-20 个新的 jQuery 单击侦听器。 IE 和 mozilla 浏览器的使用似乎都在变慢。这会显着降低浏览器性能。听众可以“释放”吗?
【问题讨论】:
标签: jquery ajax performance listeners
我的应用程序通过 Ajax 带来响应,并在每次刷新时创建 5-20 个新的 jQuery 单击侦听器。 IE 和 mozilla 浏览器的使用似乎都在变慢。这会显着降低浏览器性能。听众可以“释放”吗?
【问题讨论】:
标签: jquery ajax performance listeners
补充安迪所说的现场。
您可能应该在要添加到页面的元素上使用delegate 或live。听起来您不是将唯一事件绑定到新元素(每次刷新时),而是重用函数。
在 jQuery 1.4.2 中可以像这样使用 delegate():
// the container, the selector, "the event", the function to be called
$("#container").delegate(".selector", "click", function(){
// do stuff...
});
这只需要调用一次,每个添加了“选择器”类的新元素都会绑定到“#container”中的点击事件
【讨论】: