我在社交网站上有以下代码,它会加载一个文件,向用户显示新的通知消息(如果存在)。
问题是当我让页面打开一段时间后,它最终在我的电脑上消耗了太多内存并开始使firefox无响应并抛出一条错误消息,说内存不足并询问我是否应该中止脚本或类似的东西。
有没有办法做我所做的事,但不会长时间耗尽这么多的记忆?
<script type='text/javascript'>
$(document).ready(function(){
var updatenotification = function(){
$('#notificationcontainer')
.load('http://localhost/member/beta_new/notifications.inc.php')
.fadeIn("slow");
};
var auto_refresh = setInterval(function(){updatenotification();}, 60000);
updatenotification();
});
</script>
答案 0 :(得分:1)
你究竟回报了什么?我会假设它是一个大的ish dom片段。您可以更改代码以返回一个小的json字符串,检查是否有有效的新通知,然后将一些标记写入div而不是每次重新加载它,无论是否有新的通知。你能否展示一下你要回归的标记?
我做了一些太多的假设而不确切知道你的回归。如果它只是一个小小的html fragement我真的不能看到这个问题。该脚本看起来不错,不应该引起您所说的问题。
还要记住,萤火虫目前确实存在很大问题。在浏览像StackOverflow,Netvibes这样的重型ajax / js网站时,有一些非常讨厌的漏洞会导致内存警告对话框。你的普通用户(我假设!)不会有萤火虫,所以看不到任何东西