我有一个页面,我在其中使用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 / event处理程序之前对其进行清理吗?我以为JS引擎可能会自动执行此操作。也许可以,但是清理起来很慢,我不知道。
我已经注意到IExplorer上的CPU时间达到了50%。
非常感谢您的帮助。
我不确定这是否是问题,但是您是否不断重复添加相同的行?由于表中的行越来越多,它的速度可能会变慢。
您可以执行类似$(“ table tr”)。remove()之类的操作来清除行。