- 浏览: 230556 次
- 性别:
- 来自: beijing
文章分类
JavaScript 编程来说,内存泄露是一个很潜在的危险,主要是经验问题,书写代码不严谨的引起的, 首先要说说的是浏览器的 垃圾回收机制恩, JavaScript 不同的浏览器来解析,问题也是不同的, 垃圾回收 简单的说就是收回某些无用对象所占用的内存以供重新使用,垃圾回收机制通常有一个优先级较低的线程来维护。在IE里,Dom对象和Javascript对象的垃圾回收又是相互分离的,所以如果这两种对象出现了循环调用就会导致垃圾回收失效,内存泄露,这是IE内存泄露最常见的一种方式。那么引起内存泄露 是 1 JavaScript 引起的内存对象,比如声明全局的array ,给这个数组赋值了,但是没有去释放他。工作中我就犯过这个错误,尤其是做webGis开发,对象必须要在外面有一份引用,这样才能操作对象,清楚这个对象的时候,没有将这份引用清楚。后果自负了。 2 闭包引起的内存泄露,闭包的概念先说下,闭包是一种引用结构,至少在javascript中是这样,javascript中的闭包也可以理解为一种“函数实例引用” ,可以说是欺负了JavaScript的垃圾回收机制恩,创建对象的时候,内部还有function ,弄的这部分的变量无法释放,成为死穴。我们可以利用他,来保存“私密数据”,在WebGIS应用中,给一组marker 对象,或者overlay 对象 注册事件的时候。在jquery中我们可以利用 bind来,bind的用法我在这里就不说了吧,三个参数,事件,对象数据,函数,这样就可以将对象传过去了。 3 DOM操作引起的内存泄露没有遇到。
发表评论
-
重写openalyers 的方法,加载天地图瓦片数据
2012-06-20 09:16 6374将TiandituLayer 加载到OpenLayers.js ... -
ArcGIS客户端API中加载大量数据的几种解决办法
2012-06-20 09:18 3079原文地址:http://blog.newnaw.com/?p= ... -
table_border.html
2011-01-21 17:07 933<html> <head> ... -
jquery 菜单效果一个
2010-09-26 16:02 1170<html> <head> ... -
ExtJs layout
2010-07-20 15:20 1342extjs的容器组件都可以设置它的显示风格,它的有效值有 ab ... -
验证验证
2010-05-28 15:40 946匹配中文字符的正则表 ... -
jquery validate.js x学习
2010-04-12 16:05 1260学习了 jquery validate.js ... -
CSS 定义鼠标的样式
2009-12-17 15:33 1698CSS允许你控制网页外观 ... -
学习AJAX框架后的理解
2009-11-25 14:20 1012现在很多的AJAX框架,表现的是很优秀恩 不大可能一下就 ... -
jquey中的$符号与其他框架的$的冲突解决方法
2009-11-25 12:39 1024Jquery 中的$(id)方法来获取一个元素,或者其他的一些 ... -
IE6下div不能将select框遮住
2009-11-24 13:35 1942<Fieldset style="border ... -
DHTMLX框架AJAX
2009-11-20 17:28 1385在项目中用了下Dhtml的Grid,一直都没有仔细的 ... -
关于页面的传值
2009-11-20 10:46 1114有两个页面,父页面与子页面,父页面要传一个参数给子页面, ... -
jQuery 的CSS属性
2009-11-15 16:06 6621CSS属性的设定, 可以用预先定义的 CSS样式,使用$ ... -
jQuery 理解
2009-11-15 14:10 1186jquery this的含义 在触发事件的时候,是指向原生态 ... -
jquery理解
2009-11-11 10:24 1103下载好后引用这个jQuery库就可以了我们的jQuery开发了 ... -
JavaScript的跨域问题
2009-11-05 17:03 1614可能是经过的项目少,还没有经历过跨域问题,于是收集点跨 ... -
使用dtmlxGrid 未知运行的错误。与显示不出来的情况
2009-09-22 16:05 959ie4,ie6,ie7 环境下会出现这个错误, 原因 gri ... -
javaScript 中 call 函数与apply的用法说明
2009-09-11 10:44 1516call 的用法 javaScript 中的 call ... -
javascript 中this 的用法
2009-09-09 14:14 996在面向对象编程语言中,对于this关键字我们是非常熟悉的。比如 ...
相关推荐
内存泄露和闭包是两个关键概念,它们紧密关联并可能对程序性能产生重大影响。 内存泄露是指程序在不再需要某些数据时,未能释放这些数据所占用的内存。在JavaScript中,由于其自动垃圾回收(Garbage Collection, GC...
Iframe 内存泄露分析是指在使用 Iframe 时,由于互相引用、闭包、跨页面泄漏、伪泄漏等原因,导致浏览器内存泄漏的问题。这种问题在 Ajax 盛行以前并不是什么大问题,因为都是通过页面跳转和刷新来进行与服务端的...
然而,闭包如果使用不当,非常容易引起内存泄漏问题。内存泄漏会逐渐消耗计算机的可用内存,进而影响程序的性能甚至导致程序崩溃。以下将详细解释闭包引起的内存泄漏问题以及如何预防和解决这些问题。 首先,闭包是...
JavaScript的内存管理和闭包是JavaScript编程中的核心概念。在编程中,内存管理是至关重要的,因为它...通过理解这些原理,开发者能够更好地控制程序的内存使用,防止内存泄漏,并利用闭包的特性来解决实际编程问题。
闭包和内存泄漏是JavaScript编程中的两个重要概念,它们对程序性能和资源管理有直接影响。 首先,闭包是指一个函数能够访问并操作其自身作用域内的变量,即使这个函数在其外部被调用。在JavaScript中,每当内部函数...
JavaScript是一种动态类型的脚本语言,它在执行过程中自动管理内存,这意味着开发者不需要像在C++...总的来说,JavaScript的内存管理和闭包是其核心特性,理解并熟练运用这些概念对于编写高效、无泄漏的代码至关重要。
变量在窗口关闭或重新刷新页面之前都不会被释放,如果未声明的变量缓存大量的数据,就会导致内存泄露。 解决方法: * 避免创建全局变量 * 使用严格模式,在 JavaScript 文件头部或者函数的顶部加上 "use strict" ...
- **DOM引用**: JavaScript对象与DOM元素相互引用可能导致内存泄漏,因为DOM元素通常不会被GC清除。 - **事件监听器**: 如果不再需要事件监听,忘记移除它们会导致相关对象无法被释放。 - **定时器和回调函数**: ...
然而,不当使用闭包可能导致内存泄露,因为闭包会保持对外部作用域引用,使得这些对象无法被垃圾回收机制清除。本文将通过几个示例探讨如何解决JavaScript函数闭包导致的内存泄露问题。 首先,我们来看一个简单的...
JavaScript 避免内存泄露及内存管理技巧 在JavaScript开发中,内存泄露是一个常见的问题,它会导致页面崩溃、性能下降和用户体验不良...同时,使用弱引用、垃圾回收机制和避免闭包等技术可以帮助开发者避免内存泄露。
内存泄漏的解决方案可能包括正确使用闭包、避免全局变量、利用window周期事件进行资源清理等。 “常见兼容问题.doc”可能汇总了各种类型的CSS兼容和JavaScript内存泄漏问题,为开发者提供了一站式参考。而“div+css...
JavaScript闭包技术及IE内存泄漏分析
在IE浏览器中,由于其JavaScript引擎的设计缺陷和与其他组件的交互方式,内存泄漏问题尤为突出。 **内存泄漏的原因** 1. **全局变量和闭包**:JavaScript中,全局变量和闭合函数会持续引用内存,导致对象无法被...
标题 "jquery 内存泄露bug" 指的是在使用jQuery库进行JavaScript编程时可能出现的一种常见问题,即内存无法正常释放,导致应用占用过多内存,影响性能甚至可能导致浏览器崩溃。这个问题通常与对象引用、事件监听器和...
5. **Internet Explorer特定的泄漏**:IE浏览器在历史上存在一些特有的内存泄漏模式,例如DOM元素与CSS样式表对象之间的异常引用,或者ActiveX对象的不当使用。 为了检测和解决JavaScript内存泄漏,可以使用一些...
由于它可以保留变量状态,因此在某些情况下可能导致内存泄漏。开发者需要注意避免无用的闭包长时间占用内存。 4. **模块模式**:在JavaScript中,闭包常用于创建私有变量和方法,实现类似类的封装。通过闭包,可以...
由于IE浏览器的旧版本中,JavaScript引擎与DOM引擎是分开的,导致一些特定的内存泄漏问题。例如,使用attachEvent绑定事件,而不使用detachEvent移除,或者是在IE中频繁地进行DOM操作,都可能导致内存泄漏。解决这类...
描述中提到,补丁最初是针对IE浏览器设计的,这可能是因为IE的事件处理机制与其它浏览器有所不同,可能会更容易触发EXT2.2中的内存泄漏。然而,问题并不局限于IE,其他浏览器也可能受到类似问题的影响,因为EXT2.2的...