Jquery自动刷新div
Jquery自动刷新耗尽了很多浏览器内存。 有没有办法阻止这一点。 我每隔3秒刷一次2 div,但我把它移动到9和15秒,它帮助我的网站上的窗口保持打开的时间越长,浏览器崩溃之前所需的内存就越多。
var auto_refresh = setInterval( function () { $('#details2').load('links2.php').fadeIn("slow"); }, 15000); // refresh every 10000 milliseconds
您可以尝试跳过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); }); } });
我认为这不应该泄露您的记忆并最终导致您的浏览器崩溃,即使您每隔一秒左右调用一次。 试一试,让我知道它是怎么回事。
祝好运!
尝试将其更改为:
// ... $('#details2').empty().load('links2.php').fadeIn('slow');
它可以暂停以明确告诉jQuery首先清空容器,因此它可以释放任何事件处理程序等(虽然不清楚那里会有任何处理程序……)
编辑 – 实际上没关系; 我检查了jQuery源代码,它看起来像调用.html()
( load()
,我很确定)似乎总是先调用empty()
。
虽然答案已获批准,但我应该告诉你。 我有同样的问题。
我在JQuery文件的src中发现了问题。 我使用JQuery网站url作为我的来源,并且它将我的计算机使用率提高到99%。 但后来我下载了整个JQuery脚本并将其保存在我的网站目录中,我在我的源代码中使用了它,然后计算机使用或内存没有问题。 试试吧..