gpt4 book ai didi

jquery - AJAX 请求 + jQuery 的内存泄漏

转载 作者:行者123 更新时间:2023-11-30 23:46:34 25 4
gpt4 key购买 nike

我通过 AJAX 调用反复从服务器获取 JSON 对象。随着时间的推移,浏览器的内存使用量会增加(在 Chrome、Safari、Firefox 上尝试过)。使用 Chrome 的堆快照,我发现时间戳字符串没有引用。如果我拍摄一系列快照,我会看到字符串的数量不断增加。

$(function() {
var latestTimestamp = 0;

function fetchData() {
$.get("/parameter?format=json&since=" + latestTimestamp, gotData)
}

function gotData(data) {
latestTimestamp = data['timestamp'];
setTimeout(fetchData, 250);
}

fetchData();
});

其他说明:

  • 我使用的是 jQuery 1.7.1。编辑:刚刚尝试过 1.6.2 和 1.4.2,同样的问题。
  • JSON 对象中的时间戳实际上是一个整数,而不是字符串。那么累积的字符串可能是临时值?
  • 从 AJAX 请求中删除 +latestTimestamp 可阻止泄漏。
  • 更快的 setTimeout (20ms) 会导致泄漏更快。我认为快速超时可能是罪魁祸首,所以我将其减回到 250 毫秒,但这并没有帮助。

最佳答案

您尝试过cleartimeout javascript 函数吗?如果没有,请尝试这个。

var abc=null;
function gotData(data) {
latestTimestamp = data['timestamp'];
data=null;
clearTimeout(abc);
abc=setTimeout(fetchData, 250);
}

关于jquery - AJAX 请求 + jQuery 的内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10126852/

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