Jquery自动刷新耗尽了很多浏览器内存。有办法阻止这个。我每隔3秒刷一次2 div,但我把它移动到9和15秒,它帮助我的网站上的窗口保持打开的时间越长,浏览器崩溃之前所需的内存就越多。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script>
<script>
var auto_refresh = setInterval(
function ()
{
$('#details2').load('links2.php').fadeIn("slow");
}, 15000); // refresh every 10000 milliseconds</script>
答案 0 :(得分:2)
您可以尝试跳过load()并使用$ .ajax。我知道load();是一个ajax请求,但我似乎记得它取了整个脚本。尝试请求脚本,进行数据库计算并将数据作为json返回。我假设您正在使用数据库请求中的数据发送完整的html。试着用json代替。
您将获取数据作为对象,例如。
{"variable":"foo"}
然后你可以用简单的每个语句来获取数据。
$.ajax({
url: "links2.php",
type: "POST",
dataType: "json",
success: function(data){
// data here is returned as objects since it's json
$.each(data, function(key, value) {
$("#details2").empty().append(value.variable);
});
}
});
我认为这不应该泄露您的记忆并最终导致您的浏览器崩溃,即使您每隔一秒左右调用一次。试一试,让我知道它是怎么回事。
祝你好运!答案 1 :(得分:0)
尝试将其更改为:
// ...
$('#details2').empty().load('links2.php').fadeIn('slow');
它可能会停止显式告诉jQuery首先清空容器,因此它可以释放任何事件处理程序等。(虽然不清楚那里会有任何处理程序......)
编辑 - 实际上没关系;我检查了jQuery源代码,它看起来像调用.html()
(load()
确实如此,我很确定)似乎总是首先调用empty()
。
答案 2 :(得分:0)
虽然答案已获批准,但我应该告诉你。我遇到了同样的问题。
我在jQuery文件的src中发现了问题。我使用JQuery网站网址作为我的来源,并且它将我的计算机使用率提高到99%。但后来我下载了整个JQuery脚本并将其保存在我的网站目录中,我在我的源代码中使用了它,然后计算机使用或内存没有问题。试试吧..