jQuery AJAX调用中的内存泄漏

我写了一个小聊天框小部件,它每秒运行一次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); } }); }