gpt4 book ai didi

javascript - jQuery Ajax 和内存泄漏问题

转载 作者:行者123 更新时间:2023-11-29 18:34:54 26 4
gpt4 key购买 nike

我有一个执行定期扫描操作的网络应用程序,并在特定页面上显示这些操作(以及任何以前完成的操作)的状态。我有一个使用 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 );
}
);

最佳答案

您可以使用类似 sIEve 的工具检测吞噬你内存的事物。
我猜测使用的 DOM 节点(它们不需要成为文档树的一部分)的数量会随着每次操作而增加。

如果您在 DOM 操作部分忘记了 jQuery,那将是最好的,jQuery 使用的方法被认为容易出现此问题,而它们部分使用了一些“脏”东西,例如 innerHTML。

您能举例说明您喜欢#activescans 中的内容吗?

关于javascript - jQuery Ajax 和内存泄漏问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com