
我写了一个计时器. 我一时兴起,将setTimeout(function,n)放到函数函数中(在函数函数之外,setTimeout已用于调用函数函数).
function dd() {
/*此处省略*/
Mycheck=setTimeout(dd,n);
//、、
setTimeout(dd,n)
}
div1.onmouseover=function () {
clearTimeout(Mycheck);
};
div1.onmouseout=function () {
Mycheck=setTmoveeout(dd,n);
}
看看死刑,嘿~~~效果还不错,没有错,眼睛转向右下角突然suddenly目结舌(⊙o⊙)〜
加速球值飞涨〜
我去了那里,成千上万的草泥马飞过我的心...直到浏览器页面如下图所示

这个女孩内存泄漏〜
看图片
这个女孩爬上梯子,占据记忆并居高临下后不会倒下

这种锯齿形图案完美地装饰了我的浏览器〜
setTimeout本身仅执行一次功能. 因为setTimeout是在setTimeout需要调用的函数内引用的,所以尚未清除该引用,并且内存占用得太晚而无法回收. 这时,分配给该页面的内存很急. 你只是给我的记忆不是给我喘口气的空间吗? -
使用setTimeout通常不会导致内存泄漏(使用规范),但是如果将其与其他功能一起使用,则在形成闭包时将很难避免内存泄漏.
---------------------------------------分割线------ ----------------------

几个月后当我阅读此博客时,我发现了一个严重的问题:
问题描述不明确,示例很少. (我看起来很震惊×)我没有深入研究
再次查看此博客文章,我觉得我需要总结几点: (我当时忘记了所有代码)
1. 可能存在以下内存泄漏: 1)循环引用,未释放内存.
例如:

DOM元素通过触发onclick直接引用匿名函数,并且该函数通过外部词法环境引用elem元素,并且不会释放该引用. 此小尺寸的引用可能不会造成任何影响,也不会显示(可能需要清除IE的较低版本). 如果通过单击触发的匿名功能是一系列用于操作数据显示的代码,例如图表,则在反复切换并单击时会明显泄漏. 最终单击加载的某些变量和引用未释放. 此时,点击可以为空. document.οnclick= null;
2. 计时器未清除.
如何检查内存泄漏?
1. 如果泄漏明显,可以一目了然,例如浏览器崩溃和CPU飙升(请参阅360加速球).
2. 检查控制台的性能. 如果cpu列中的蓝线是锯齿形或梯形以及其他起伏形状,请查看代码中有明显问题的地方.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-294749-1.html
你觉得物价会降低吗
可不可以没有