`
o_o_0
  • 浏览: 17710 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

JavaScript可能在IE中引起内存泄漏的两种情况

阅读更多

https://developer.mozilla.org/en-US/docs/JavaScript/A_re-introduction_to_JavaScript

 

可能在IE中引起内存泄漏的两种情况

 

1.JS对象与Dom对象循环引用

 

function leakMemory() {
    var el = document.getElementById('el');
    var o = { 'el': el };
    el.o = o;
}

 

 2.闭包

 

function addHandler() {
    var els = document.getElementsByTagName('p');
    for(var i=0;i<els.length;i++){
        els[i].onclick = function() {
            this.style.backgroundColor = 'yellow';
            console.log(this);
        }
    }
}
addHandler();
分享到:
评论

相关推荐

    Javascript内存泄露

    在早期版本的Internet Explorer(如IE6)中,存在一种特殊的内存泄露情况,即当DOM元素或ActiveX对象与普通的JavaScript对象之间存在循环引用时,IE在释放这类变量时存在特殊困难,导致内存无法正常回收。...

    javascript 内存泄漏

    而这种引用计数方法与JavaScript使用的标记-清除(mark-and-sweep)垃圾收集方法并不总是兼容,这可能是JavaScript代码中内存泄漏的罪魁祸首。 文章还指出,解决JavaScript中的内存泄漏相对简单,当你知道引起它们...

    css样式和内存泄漏

    “JS关于ie的内存泄漏与javascript内存释放资料.doc”和“Js内存泄漏及解决方案.doc”可能详细解释了JavaScript中如何发生内存泄漏,尤其是在IE浏览器中的特殊情况。IE浏览器因为其独特的内存管理机制,如活动对象链...

    IE的JavaScript调试工具

    "内存"(Memory)分析工具则可以显示JavaScript对象和内存的使用情况,帮助检测内存泄漏,确保应用高效且稳定运行。 安装的两个文件,"scd10chs.exe"和"install-companionjs-v0.5.exe"可能与调试工具的扩展或更新...

    【JavaScript源代码】一篇文章弄懂javascript内存泄漏.docx

    在JavaScript中,内存管理对于程序性能至关重要,因为内存泄漏会导致程序效率下降,甚至可能导致应用崩溃。本文旨在深入解析JavaScript中的内存泄漏及其解决策略。 首先,理解内存的基本概念。随机存取存储器(RAM...

    总结JavaScript在IE9之前版本中内存泄露问题

    JavaScript在IE9之前的版本中,内存管理机制与现代浏览器有所不同,导致了一些特有的内存泄露问题。在IE9之前,JavaScript引擎JScript使用了两种不同的垃圾回收策略:对于JScript对象使用了"标记-清除"算法,而对于...

    js内存泄露的几种情况详细探讨

    当DOM元素被移除或替换时,如果还保留了对这些元素的事件监听器,如IE浏览器中的情况,内存可能无法被正确回收。例如,当点击按钮后更新div内容的示例中,应当在事件处理函数执行完后移除事件监听器,以避免内存...

    sIEve与JSLeaksDetector

    内存泄漏是指程序在申请内存后,无法释放已申请的内存空间,一次小的内存泄漏可能不会立即引起问题,但随着时间的推移,连续的内存泄漏会消耗掉大量系统资源,导致性能下降甚至应用程序崩溃。 ### 2. sIEve:专门...

    ATL工程创建ActiveX控件并在IE中测试object引用的生命周期

    默认情况下,当IE页面跳转时,与旧页面相关的所有ActiveX控件都会被释放,以防止内存泄漏。然而,在frameset环境中,如果你希望控件在页面之间保持状态,你可能需要使用某种形式的持久化机制。 一种解决方案是利用`...

    动态加载JavaScript文件的两种方法_.docx

    // 释放内存,防止IE内存泄漏 script.onload = script.onreadystatechange = null; script.parentNode.removeChild(script); } }; head.appendChild(script); ``` 这种方法更安全,因为脚本的执行由浏览器控制...

    IE浏览器IFrame对象内存不释放问题解决方法

    标题中的“IE浏览器IFrame对象内存不释放问题解决方法”是指在使用Internet Explorer(IE)浏览器时,特别是在涉及IFrame对象的场景下,可能会遇到内存管理的问题。IFrame是一种可以在网页中嵌入其他HTML页面的元素...

    min-width For ie6 与传统事件阻止

    在JavaScript中,有两种主要的事件阻止方式:`event.preventDefault()`和`return false;`。前者用于阻止事件的默认行为,但不会阻止事件的继续传播;后者则同时阻止了事件的默认行为和事件冒泡。在早期的JavaScript...

    JavaScript与JScript从入门到精通(PDF)

    JavaScript和JScript是两种在Web开发中广泛使用的脚本语言,它们主要负责为网页增加交互性和动态功能。本文将深入探讨这两个语言的核心概念、异同以及如何从入门到精通。 一、JavaScript概述 JavaScript,由...

    JavaScript的内存释放问题详解

    JavaScript是一种广泛使用的高级编程语言,它在Web开发中扮演着重要角色,特别是在浏览器端的动态交互中。然而,随着JavaScript应用的复杂性和对内存的需求增加,内存管理成为了前端开发人员必须面对的问题之一。...

    javascript实现生成并下载txt文件

    在JavaScript中,生成并下载TXT文件是一项常见的任务,尤其在Web开发中,用户可能需要将某些数据导出为文本格式。下面将详细讲解如何利用JavaScript实现这个功能,并且确保兼容IE浏览器以及像Chrome这样的现代浏览器...

    JavaScript 45道面试题和答案.docx

    然而,由于闭包会保持对外部变量的引用,可能导致内存泄漏,因此需要谨慎使用。 2. **作用域链**:作用域链是JavaScript中控制变量访问的机制。它确保变量访问顺序是从当前作用域开始,逐级向上直至全局作用域。在...

    JavaScript创建闭包的两种方式的优劣与区别分析

    5. 浏览器兼容性:在旧版IE浏览器中,闭包可能会导致内存泄漏的问题更为严重,因为这些浏览器的JavaScript引擎可能存在bug,导致无法正确地回收闭包中使用的内存。无论是构造函数方式还是内联执行方式,都需要注意...

    学习Javascript闭包

    1. **内存消耗问题**:由于闭包会导致函数中的变量持续保留在内存中,过度使用闭包可能会导致内存消耗过大,甚至在某些浏览器(如IE)中导致内存泄漏。为了避免这种情况,可以在函数退出前显式删除不再需要的局部...

    IE6已终止操作问题的2种情况及解决

    本文主要讨论了“IE6已终止操作”这一问题的两种常见情况及其解决方案。 首先,我们要理解这个问题的本质。"IE6已终止操作"通常表示Internet Explorer在尝试执行某些JavaScript代码时遇到了无法恢复的错误,导致...

Global site tag (gtag.js) - Google Analytics