Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
系统在运行javascript一整夜后挂起_Javascript_Jquery_Html_Memory Management_Memory Leaks - Fatal编程技术网

系统在运行javascript一整夜后挂起

系统在运行javascript一整夜后挂起,javascript,jquery,html,memory-management,memory-leaks,Javascript,Jquery,Html,Memory Management,Memory Leaks,我的javascript非常简单。它只是不断调用ajax来下载数据并将其显示在我的屏幕上。我通过直接更新数据(使用jquery的$(DIV).empty()函数,然后附加到另一个内容)重用这些DOM元素。然而,在运行了一夜之后,我的电脑挂起了,似乎在继续做一些事情 我试着观察firefox插件的内存消耗情况。当运行两个小时时,内存可能会增加200MB,但我不确定这是否是我的js或其他原因造成的 我对这个问题有些疑问。 1.有没有什么好的方法来监控它(比如特定网页使用了多少内存,占用了多少CPU资

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

我试着观察firefox插件的内存消耗情况。当运行两个小时时,内存可能会增加200MB,但我不确定这是否是我的js或其他原因造成的

我对这个问题有些疑问。 1.有没有什么好的方法来监控它(比如特定网页使用了多少内存,占用了多少CPU资源,以及如何监控?) 2.有没有什么通用的方法来设计js web应用程序来避免这样的问题


谢谢,任何评论都将不胜感激

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

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

Internet Explorer和Mozilla Firefox是两种最流行的Web浏览器 通常与JavaScript中的内存泄漏相关。罪魁祸首 这两种浏览器都是用于管理DOM的组件对象模型 物体。本机Windows COM和Mozilla的XPCOM都使用 内存分配和存储的引用计数垃圾回收 检索引用计数并不总是与 标记并清除用于JavaScript的垃圾收集。本文 重点介绍如何解决JavaScript代码中的内存泄漏问题。看见 有关Firefox和中COM层内存处理的详细信息,请参阅参考资料 即


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


您使用的是哪种浏览器?(编辑:哦,我明白了)。你在不同的浏览器上重复了这个实验吗?你已经在使用firebug分析器了吗?有了它,你就可以看到你的电话打到哪里去了。你有没有想过从不同的角度来处理这个问题。不是使用ajax,而是使用meta refresh标记来重新加载页面?