【问题标题】:Javascripts causing browser memory leakJavascripts 导致浏览器内存泄漏
【发布时间】:2012-01-13 10:11:57
【问题描述】:

我有一个 Web 应用程序,它是一个监控工具。所以有人会整天在浏览器上保持打开状态。问题是我每 3 分钟刷新一次索引页:

var auto_refresh = setTimeout( function () {
    $('#page-body').load('/Monitor/Index').fadeIn("slow");
}, 180000); 

每次应用程序刷新时,它都会加载 3 个我在布局中调用的 javascript:

<script type="text/javascript" src="@Url.Content("~/Scripts/script-core-v1.0.js")">
</script> 
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.dataTables.js")"> 
</script>  
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.sparkline.js")">
</script>

所以,每次应用刷新时,我的浏览器都会变得越来越大,我认为主要原因是那些脚本。

如何避免这个问题? 谢谢!

【问题讨论】:

  • 代码的内存区域由 Javascript 引擎特殊处理,并且在停留在一个站点时很可能不会被清理。

标签: javascript browser memory-leaks


【解决方案1】:

加载该页面的特定部分,而不是整个内容:

$('#page-body').load('/Monitor/Index body')
                                     ^^^^

这是最后的选择器,因此您可以定位特定元素。

如果您不提供选择器,则会加载整个页面(脚本和所有内容)。当您提供选择器时,&lt;script&gt; 标记将被剥离。

另外,您的浏览器可能没有泄漏内存。您的网站正在消耗所有内容。

【讨论】:

  • 嘿Blender,谢谢你,你说得对,我的网站正在消耗这一切......不知道为什么,但是当我尝试使用该选择器“body”时,看起来像浏览器它没有进入我的身体标签的所有层次结构:
    ...它只是停在“页面-body”级别,因此浏览器不会呈现更深层次的所有内容..我应该更具体地了解该选择器还是什么?再次tnx!
  • 您可以发布指向您网站的链接吗?这很奇怪。
  • 已经有一段时间了,不记得发生了什么,但它正在工作。 tnx 虽然搅拌机!
猜你喜欢
相关资源
最近更新 更多
热门标签