jquery innerHTML使用注意

转载 2012年03月23日 14:36:30


首先看下面一段代码:

 

Html代码 复制代码 收藏代码

 

 

场景:

inner div 就是常见的我们可能使用 ajax 从服务器动态构造的元素,或者注入的片断html,效果为点击 inner 后就把它以及它的兄弟清除出去,依照传统的思路,直接 innerHTML =“” 就好了 ,可能你会想到所有删除元素的事件监听器应该清楚掉,但是对于除了 ie6 (引起内存泄露)以外的浏览器,清除事件监听器不是必要的 。



jquery 机制:

但是可以确定的是在 jquery 中用 innerHTML 的方法来清空元素,是必然会导致内存泄露的,由于 jquery 对于同一元素多事件处理没有直接采用浏览器事件模型,而是自己缓存事件,遍历触发,以及便于 trigger 程序触发 :

 

Js代码 复制代码 收藏代码
 

采用 data 方法,将一些数据关联到了元素上面,上述事件即是采用该机制缓存事件监听器。


那么就可以知道,直接 innerHTML=“” 而不通知 jquery 清空与将要删除元素关联的数据,那么这部分数据就再也释放不了了,即为内存泄露。




解决:

jquery 已经想到了这一方面,提供了 empty 函数,其思想就是,对节点的所有子,孙,重孙.....节点( $("*",this) ),先清空它们关联的数据,再进行节点的删除:

 

Js代码 复制代码 收藏代码

相关文章推荐

jquery ie6内存泄露innerHTML使用注意

问题代码:首先看下面一段代码:Html代码                      <meta con...

innerHTML的使用

  • 2013-06-14 14:14
  • 187B
  • 下载

innerHTML的使用

  • 2014-04-25 09:54
  • 671B
  • 下载

jQuery中html()、val()、text()的区别; javascript中innerHTMl、innerText、outHTML的区别

jQuery中html()、val()、text()的区别; javascript中innerHTMl、innerText、outHTML的区别

jQuery中的text()、html()和val()以及innerText、innerHTML和value

出处:http://www.cnblogs.com/fozero/p/5916878.html *jQuery中设置或者获取所选内容的值: text();设置或者获取所选元素的文本...

js的innerHTML及jquery的html() 在ie下不兼容“未知运行时错误” 的解决方案

今天在给学生处做一个需求页面写一个计时插件时,遇到了html()在ie下兼容性问题 先看代码: html 必读说明 $(document).ready(function(){ va...

html&JavaScript&innerHTML演练(计算器):利用jQuery简化代码

HTML 、JavaScript、jQuery、innerHTML、计算器演练、代码简化

简单日历和innerHTML使用

JavaScript中的innerHTML属性的使用

*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.html * 作者:常轩 * 微信公众号:W...
  • vcx08
  • vcx08
  • 2016-11-01 19:26
  • 331

分别使用innerHTML和DOM在网页中动态生成表格的三种不同方法。

无标题文档 function creatTable2(){ var row = parseInt(document.getElementById("row").value);//列 var ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)