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

如何避免Javascript事件绑定出现内存泄漏

阅读更多
Javascript绑定事件时,只要DOM的事件里访问不了DOM自己的那个变量就行了

var e=document.getElementById("XX");   
e.onclick=function(){};   
   
// 事件绑定方法 2   
var fooA = function(){   
    var f = function(){};   
    (function(){   
        var d = document.getElementById('XX');   
        d.onclick = f;   
    })();   
}   
fooA();   
   
// 事件绑定方法 3   
var fooB = function(){   
    this.onclick = function(){};   
};   
   
fooB.call(document.getElementById('XX'));
  

其中方法1将会导致内存泄露,方法2、3没有问题
分享到:
评论

相关推荐

    javascript中传统事件与现代事件

    例如:内存泄漏,重复添加事件并触发的时候是倒叙执行等。 下面是用传统事件的方法来处理封装事件的绑定: addEvent.ID = 1; // 事件计数器 function addEvent(obj, type, fn){ if(obj.addEventListener){ obj....

    Vue优化:常见会导致内存泄漏问题及优化详解

    如果你在用 Vue 开发应用,那么就要当心内存泄漏的问题。这个问题在单页应用 (SPA) 中尤为重要,因为在 SPA 的设计中...一、vue自定义指令给元素绑定事件,却没有解绑事件 这个问题见上篇博客,vue自定义指令导致的内存

    myEvent.js javascript跨浏览器事件框架

    我参考前辈的代码以及自己的理解尝试写了一个事件框架,我的框架完成了一个事件机制的核心,它能提供统一接口实现多事件绑定以及避免内存泄漏等其他一些问题,更重要的是性能还不错。我的手法: 所有回调函数根据...

    js常见经典面试题汇总

    js常见面试题汇总 1.js的数据类型 2.双等和三等的区别 3.js中布尔值为false的六种情况 4.let const var 区别 5.普通函数和箭头函数的区别 ...6.数组有哪些方法 ...12.事件循环机制 ...24.哪些操作会造成内存泄露

    dns-rebind-toolkit:用于创建DNS重新绑定攻击的前端JavaScript工具包

    DNS重新绑定工具包| | | 免责声明:此软件仅用于教育目的。 该软件不得用于非法活动。 作者对其使用概不负责。 别做鸡巴。 DNS Rebind Toolkit是一个前端JavaScript框架,用于针对局域网(LAN)上易受攻击的主机和...

    data-binding-plugin:最强大的双向数据绑定工具之一。 简单,快速,防泄漏和移动友好

    经过广泛测试,可以防止内存泄漏。 这是一个插件,因此易于使用。 它甚至可以与SVG一起使用! 现场例子 有一个虚拟化的网格中显示百万个展示 安装 npm install data-binding-plugin 如何使用 数据绑定插件需要...

    yarray:将数组绑定到某些输入

    yarray 用一些非常糟糕的 javascript 来做到这一点,我敢打赌它会泄漏内存或暴露你的信用卡信息或其他东西,我可能应该使用主干而不是编写这个愚蠢的模块,idk dgaf MIT LICENSE。 - 对...有用: 复杂的数据输入 ...

    leetcode分类-blog::cookie:我的博客

    对于不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak) 四种常见的内存泄露 意外的全局变量 未声明的变量 使用this创建的变量 被遗忘的计时器或回调函数 定时器引起 观察者addEventListener 脱离DOM的...

    rindel:一种可编译为Javascript的功能性React式编程语言

    隐式提升-所有表达式自动提升到时域函数应用程序的命令式语法-例如f(a,b) ,而不是fab 不是普通功能语言的嵌入式语言通过设计避免时间和空间的泄漏多种-区分3种流(又称信号):常量,事件和步长(分段常量) 严格...

    weakbind:记忆绑定提高性能

    弱绑定 记忆绑定具有更高的性能。 用法 npm install --save weakbind var weakbind = require ( "weakbind" ) ;... 这意味着它不需要泄漏内存或将新属性附加到您的函数。 陷阱 对于不支持WeakMap浏览

    node-mapcache:Mapserver Mapcache 地图切片缓存解决方案的 Node.js 绑定

    Node.js MapCache 图块缓存模块 该模块通过创建与绑定,为 Node.js 提供了地图图块缓存解决方案。 Mapserver MapCache 已经可以部署为 Apache/... 该套件已通过 Valgrind 运行以检查内存泄漏。 用法 node-mapcach

    Flex企业应用开发实战源代码

    9.3 Flash Builder的内存泄漏分析工具 291 9.4 用于性能查看的Flash的系统API 293 9.5 其他有关内存泄漏的问题 293 9.6 有关提高Flex应用性能的技巧 294 9.7 小结 299 第10章 Flex企业应用开发的其他技术 300 ...

    singularity:DNS重新绑定攻击框架

    WebRTC泄漏已允许在最新版本的Google Chrome和Apple Safari中修复,该泄漏允许获取目标计算机的内部IP地址。 它仍然可以在Firefox上使用。 新的! 在处查看我们的和BSidesLV演示。 Singularity of Origin是执行...

    ooee:面向对象的事件发射器

    这种方法不仅安全,而且在您担心内存泄漏时也更易于使用。 ooee使用2个公共方法on()和emit()以及一个动态附加的属性来扩展对象,以on()其中存储事件侦听器。可以通过调用ooee({namespace: 'desiredNamespace'}) ,...

    simple-scroll-hook:一个无jQuery的简单库,用于在滚动到视图中时将CSS类更改挂接到HTML元素

    此外,在触发所有其挂钩事件后,它会自行清除并删除其侦听器,以防止内存泄漏。 有哪些用例? 到目前为止,当用户向下滚动网站时, simple-scroll-hook可以理想地工作。 用例示例包括在用户滚动到新部分时淡入/...

    ExtAspNet_v2.3.2_dll

    -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正...

    hear:使用单个 API 侦听任何事件

    heart 是一个“通用绑定器”,它允许您将一个方法名称与不同的事件发射器一起使用,无论它是 DOM 节点、节点 EventEmitter、中介器……您还可以传递一个上下文,here 将为您处理这个问题(没有bind泄漏)。...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正...

    matrix.to:用于Matrix的简单的无状态隐私保护URL重定向服务

    Matrix.to通过不共享有关Matrix.to服务器所遵循的链接的任何信息来保护用户隐私-重定向完全使用JavaScript在客户端进行计算,并且链接详细信息隐藏在一个片段后面,以避免Web客户端将其泄露给服务器。 但是,作为...

    artDialog_Demo

    2、 剔除鸡肋参数'parent',框架相互调用请用javascript原生方法 3、 剔除对话框关闭后回调函数,如果需要使用请使用内置扩展方法 4、 如果有取消按钮回调函数,那关闭按钮的回调函数也将与其相同 5、 增加当...

Global site tag (gtag.js) - Google Analytics