jQuery Ajax&内存泄漏问题

时间:2010-11-18 15:08:30

标签: javascript jquery memory-leaks

我有定期扫描操作的Web应用程序,并在特定页面上显示这些操作的状态(以及任何以前完成的操作)。我有一个使用jQuery发送的Ajax请求,它返回我当前所在的页面,在给定时间变量(上次更新)的情况下进行修改,以包括正在运行的扫描和任何最近完成的扫描。

显然,在一夜之间离开,这不是一个正常的用例,在IE8上返回了“第112行的内存不足”(在任何地方的第112行都没有注意到)。我想弄清楚我做错了什么,以及它可能在哪里泄漏。

我的问题是:既然我正在重新加载同一页面,但只是拿了一块,“准备好”的处理程序是否会重新运行?在大多数情况下,活动操作表将是空的,所以它不会像我不断增加表的大小或显而易见的东西。

function updateActiveScanList()
 {
    $.ajax({  
        method: "POST",
        url: "ScanList.action",
        data: { updatedTime: $('#updatedTime').val() },
        success: function(data) { 


        // Update the active scan list.
        $('#activescans').html( $("#activescans", data) );

        // the recent scans table update requires more massaging, omitted for brevity,
        // since there's nothing else done there, this happens even if nothing else is 
        // ever inserted.
    });
}
$(document).ready(

  function(){
      setInterval( updateActiveScanList, 30000 );
  } 
);

1 个答案:

答案 0 :(得分:4)

您可以使用像sIEve这样的工具来检测您的记忆中的东西 我想使用的DOM节点的数量(它们不需要是文档树的一部分)将随着每次操作而增加。

如果你忘记jQuery用于DOM操作的部分将是最好的,jQuery使用的方法被认为容易出现这个问题,而他们部分使用一些像“innerHTML”这样的“脏”的东西。

你能举例说明你想在#activescans里面有什么吗?