运行 JavaScript 过夜后系统挂起

System hang after running javascript over night

本文关键字:系统 挂起 过夜 JavaScript 运行      更新时间:2023-09-26

我的javascript非常简单。它只是不断调用 ajax 来下载数据并将其显示在我的屏幕上。我通过直接更新数据来重用这些 DOM 元素(使用 jquery 的 $(DIV).empty() 函数,然后附加到另一个内容)。但是,运行了一夜后,我的电脑挂起了,似乎在继续做某事。

我尝试通过一些火狐插件观察内存消耗。运行两个小时时,内存可能会增长 200MB ,但我不确定这是否只是由我的 js 或其他原因引起的。

我对这个问题有一些疑问。1.有没有监控它的好方法(比如特定网页使用了多少内存,占用了多少CPU资源,以及如何监控?2. 是否有任何通用方法来设计 JS Web 应用程序来避免此类问题?

谢谢,任何评论不胜感激!

某些版本的 Firefox 使用引用计数作为垃圾回收策略。在某些情况下,引用计数容易导致内存泄漏。

Internet Explorer和Mozilla Firefox是两个最主要的Web浏览器 通常与 JavaScript 中的内存泄漏有关。罪魁祸首 两个浏览器都是用于管理 DOM 的组件对象模型 对象。原生Windows COM和Mozilla的XPCOM都使用 用于内存分配的引用计数垃圾回收和 检索。引用计数并不总是与 用于 JavaScript 的标记和扫描垃圾收集。本文 重点介绍解决 JavaScript 代码中的内存泄漏的方法。看 了解有关 Firefox 中 COM 层内存处理的更多信息的资源,以及 即。

从 http://www.ibm.com/developerworks/web/library/wa-memleak/

我有一种预感,内存消耗是因为在jQuery中,每次完成ajax调用时,都会创建一个jqXHR来管理请求和后续处理(回调,状态检查等)。我在jQuery文档中没有看到任何自动清除这些内容。所以,你的JavaScript只是把它们堆起来。

http://api.jquery.com/jQuery.ajax/

您可以使用Chrome的时间轴功能来跟踪一段时间内的内存使用情况。它是内置开发人员工具的一部分。我确信Firebug或其他FF插件将提供相同的功能。