我有一个页面,我在其中使用 ajax 加载信息表。加载表后,我使用 jQuery 在表的行上连接一些事件处理程序。
用户可以从该页面刷新该表。我刷新表格的 jQuery 代码如下所示:
$.post("/myurl", { id: 0},
function (d)
{
$("tblWrapper").html(d);
//Wire events
$("table tr", $("tblWrapper")).click(function (e) { ... });
...etc
}, "text");
我注意到在这样做了几次之后,当我尝试在 IE8 中进行任何滚动或动画时,页面的响应会非常缓慢。
我的问题是,我做错了什么,使它变得越来越慢?我可以在用新的 html 和新的处理程序替换旧的 html/事件处理程序之前清理它吗?我曾认为 JS 引擎可能会自动执行此操作。也许确实如此,而且清理起来很慢,我不知道。
我注意到 IExplorer 上的 CPU 时间达到了 50%。
我将不胜感激任何帮助。