jQuery.data( )方法与内存泄漏
|
在jQuery的官方文档中,提示用户这是一个低级的方法,应该用.data()方法来代替。$.data( element, key, value )可以对DOM元素附加任何类型的数据,但应避免循环引用而导致的内存泄漏问题,原文如下:
但对于该方法,存在的问题也不仅于此。在JQUERY FORUM中 ,对该问题作了深入的讨论,robert.katic 提出了一条解决方案。$.data()方法应用到宿主对象上,运行会得到优化,但在本地对像上使用该方法,结果未必尽如人意。一个元素在正常情况下可以使用.remove()方法将其删除,并清除各自的数据。但对于本地对象而言,这是不能彻底删除的,这些相关的数据一直持续到窗口对象关闭。同样,这些问题也存在于event 对象中,因为事件处理器(handlers)也是用该方法来存储的。 那么,要解决该问题最简单的方法是将数据存储到本地对象新增的一个属性之中。即: // ... 但是,一旦涉及到继承问题,该方法就无能为力。试看: var parent = {}; 开始时,存储数据的对象不存在,因此创建一个对象来存储新的值,如图
现在,我们尝试去修改对象childA同样的数据。
(编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 英伟达大举发力,公布全新Ampere架构、机器人与无人驾驶汽车
- 为什么很多APP总要升级,他们在图什么?
- 华米科技举办AI创新大会和开放日,新技术发布关注用户健康
- 最佳AI处理器:NVIDIA Jetson Nano荣膺2020年度最佳视觉产品
- 魔门云推出首家私有云加速平台 全方位助力企业网站加速和安
- IBM新任首席执行官:Ginni Rometty退休 Arvind Krishna接替
- Xilinx “数据中心优先战略” 取得惊人发展 强大生态系统引
- “SRv6开启承载网新时代”主题论坛成功举办
- Oracle发布高性能Exadata Cloud Service X8M数据库
- Dell EMC PowerStore 在存储基础架构性能和灵活性方面取得突



