gpt4 book ai didi

jquery - jQuery AJAX 调用中的内存泄漏

转载 作者:行者123 更新时间:2023-12-03 23:04:36 25 4
gpt4 key购买 nike

我编写了一个小聊天框小部件,它每秒运行一次 ajax 调用,以获取已发布的新消息。问题是它正在泄漏内存,打开大约 15 分钟后,它就使我的浏览器 (Firefox) 崩溃了。

这可能是我,因为我是一个相对新手,而且我确信我错过了一些东西或者没有取消设置我的变量等等。

var chat = {}
chat.fetchMessages = function() {
$.ajax({
url: '/chat_ajax.php',
type: 'post',
data: { method: 'fetch'},
success : function(data) {
$('#chat .messages').html(data);
$("#chat").scrollTop($("#chat")[0].scrollHeight);
}
});
}
chat.interval = setInterval(chat.fetchMessages, 1000);
chat.fetchMessages();

有人可以看一下我的(基本)代码,看看您是否可以发现内存泄漏发生的位置以及我做错了什么?我需要取消设置一些变量或其他东西吗?

非常感谢!

最佳答案

永远不要setInterval() 与 ajax 一起使用,否则您的请求永远不会保持同步。请改用 setTimeout(),然后等待您的逻辑,在 complete 回调中递归启动 setTimeout()

示例。

$(DoMyAjax); // start your ajax on DOM ready
function DoMyAjax() {
$.ajax({
complete: function() {
// your logic here
setTimeout(DoMyAjax, 1000);
}
});
}

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

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