`
highfly-s
  • 浏览: 100416 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

闭包内存泄露

 
阅读更多

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript" type="text/javascript">
//由于IE对javascript 对象和COM对象使用不同的垃圾收集例程,因此闭包在IE中会导致一些特殊的问题。具体来说,如果闭包的作用域链中保存着一个HTML元素,那么就意味着该元素将无法销毁。


//触发assign2  element一直占用内存。由于匿名函数保存了一个对assign2  ()的活动对象的引用,因此就会导致无法减少element的引用数
function assign2(){
 var element=document.getElementById('td');
 element.onclick=function(){
  
  alert(element.id);
  }
}


//解决内存泄露
function assign(){
 var element=document.getElementById('td');
 var id=element.id;
 element.onclick=function(){
  
  alert(typeof element);
  }
 element=null; 
}
</script>
</head>

<body>
<a href="javascript:assign()">你好朋友</a>

<div id="td" style="width:200px; height:200px; background-color:#F00; border:#666 solid 1px;"></div>
</body>
</html>

分享到:
评论

相关推荐

    内存泄露,闭包 内存泄露,闭包 内存泄露,闭包

    内存泄露和闭包是两个关键概念,它们紧密关联并可能对程序性能产生重大影响。 内存泄露是指程序在不再需要某些数据时,未能释放这些数据所占用的内存。在JavaScript中,由于其自动垃圾回收(Garbage Collection, GC...

    解决js函数闭包内存泄露问题的办法

    总结来说,解决JavaScript函数闭包内存泄露的关键在于: 1. 避免直接引用外部作用域的`this`,而是保存其值到局部变量。 2. 在不再需要引用时,手动设置引用为`null`,以便垃圾回收机制能正确清理。 3. 在处理涉及...

    浅谈js 闭包引起的内存泄露问题

    然而,闭包如果使用不当,非常容易引起内存泄漏问题。内存泄漏会逐渐消耗计算机的可用内存,进而影响程序的性能甚至导致程序崩溃。以下将详细解释闭包引起的内存泄漏问题以及如何预防和解决这些问题。 首先,闭包是...

    闭包和内存泄漏1

    闭包和内存泄漏是JavaScript编程中的两个重要概念,它们对程序性能和资源管理有直接影响。 首先,闭包是指一个函数能够访问并操作其自身作用域内的变量,即使这个函数在其外部被调用。在JavaScript中,每当内部函数...

    Iframe内存泄露分析

    Iframe 内存泄露分析是指在使用 Iframe 时,由于互相引用、闭包、跨页面泄漏、伪泄漏等原因,导致浏览器内存泄漏的问题。这种问题在 Ajax 盛行以前并不是什么大问题,因为都是通过页面跳转和刷新来进行与服务端的...

    万恶的前端内存泄漏及万善的解决方案详解.docx

    变量在窗口关闭或重新刷新页面之前都不会被释放,如果未声明的变量缓存大量的数据,就会导致内存泄露。 解决方法: * 避免创建全局变量 * 使用严格模式,在 JavaScript 文件头部或者函数的顶部加上 "use strict" ...

    内存泄漏检测工具

    然而,在某些情况下,开发者可能无意间创建了全局变量或闭包,导致对象无法被正确地释放,这就形成了内存泄漏。 2. **JavaScript内存泄漏类型** - **全局变量**: 全局变量在整个脚本生命周期内都不会被销毁,除非...

    JavaScript闭包技术及IE内存泄漏分析.pdf

    JavaScript闭包技术及IE内存泄漏分析

    css样式和内存泄漏

    内存泄漏的解决方案可能包括正确使用闭包、避免全局变量、利用window周期事件进行资源清理等。 “常见兼容问题.doc”可能汇总了各种类型的CSS兼容和JavaScript内存泄漏问题,为开发者提供了一站式参考。而“div+css...

    ie内存泄漏检测软件

    1. **全局变量和闭包**:JavaScript中,全局变量和闭合函数会持续引用内存,导致对象无法被垃圾回收。 2. **DOM引用**:当JavaScript对象与DOM元素相互引用时,即使DOM元素已经从页面中移除,其关联的JavaScript对象...

    js内存泄露问题

    2. **闭包**:闭包是JavaScript中的一个强大特性,但如果不正确使用,也会引发内存泄漏。当内部函数引用了外部函数的变量时,即使外部函数已经执行完毕,闭包依然会保持对外部环境的引用,导致相关内存无法释放。 3...

    jquery 内存泄露bug

    标题 "jquery 内存泄露bug" 指的是在使用jQuery库进行JavaScript编程时可能出现的一种常见问题,即内存无法正常释放,导致应用占用过多内存,影响性能甚至可能导致浏览器崩溃。这个问题通常与对象引用、事件监听器和...

    JavaScript避开内存泄露及内存管理技巧_.docx

    JavaScript 避免内存泄露及内存管理技巧 在JavaScript开发中,内存泄露是一个常见的问题,它会导致页面崩溃、性能下降和用户体验不良...同时,使用弱引用、垃圾回收机制和避免闭包等技术可以帮助开发者避免内存泄露。

    Js内存泄漏及解决方案.pdf

    JavaScript内存泄漏指的是由于代码的某些问题导致内存不能被垃圾回收机制正常回收,从而随着时间的推移,内存消耗持续增长。这不仅会导致程序运行缓慢,最终还可能导致程序崩溃。根据给定文件中的内容,我们可以分析...

    ext2.2的内存泄漏补丁

    然而,如果代码中存在全局变量或者闭包引用了不再使用的对象,这些对象将不会被释放,从而导致内存泄漏。 描述中提到,补丁最初是针对IE浏览器设计的,这可能是因为IE的事件处理机制与其它浏览器有所不同,可能会更...

    脚本IE内存泄露检测.rar

    标题中的“脚本IE内存泄露检测.rar”表明这是一个专门针对Internet Explorer浏览器的JavaScript内存泄漏检测工具。内存泄漏是编程中常见的问题,特别是在处理大量数据或长时间运行的网页应用时,可能导致浏览器性能...

    最符合菜鸟的闭包

    由于它可以保留变量状态,因此在某些情况下可能导致内存泄漏。开发者需要注意避免无用的闭包长时间占用内存。 4. **模块模式**:在JavaScript中,闭包常用于创建私有变量和方法,实现类似类的封装。通过闭包,可以...

Global site tag (gtag.js) - Google Analytics