`

javascript - trick/guideline to remove DOM element

阅读更多

remove an element is not as simple as calling parent.RemoveChild, housekeeping include 

 

  1. remove element should clean the handler that is associated with the element, otherwise, IE will leak memory should the function reference an external DOM element
  2. remove the data associated with the element
  3. remove should happen on the element (the parent) and all its descendant

and there is a caveat on IE, where most browsers will reclaim the memory happily, IE does not reclaim the memory that is occupied by the removed elements until the page is left.  


I am giving a pseudo-code as follow to show you you would normally write the remove function if  you ever need to do so. 


/**
* @Comment: this shows you how to remove DOM element from the tree, it worth the discussion because  
*   1. remove element should clean the handler that is associated with the element, otherwise, IE will leak memory should the function reference an external DOM element
*   2. remove the data associated with the element
*   3. remove should happen on the element (the parent) and all its descendant
* one caveat abou the remove, after the removal of the element, browsers may have different strategy to reclaim the memory it used, IE is an exception where it fail to reclaim 
* the memory until the page is finally left. 
* 
* so, for IE,an additional step is to set the outerHTML = "" (a trick) , which will wipe out elment from IE's memory more completely than simply doing removing child. 
*
* NOTE: this code shows example, and is not supposed to be useful without context.
*/
function remove() {
  // go through all descendants and the element to be removed.
  jQuery("*", this).add([this]).each(function () {
    // remove all bound events 
    jQuery.event.remove(this);
    // remove attached data
    jQuery.removeData(this);
  });
  // remove the element (if it 's in the DOM)
 
  if (this.parentNode) {
    this.parentNode.removeChild(this);

  // if it is IE, you will need to set the outerHTML as well
    if (typeof this.outerHTML !== "undefined")
      this.outerHTML = "";
  
  }
}
 
分享到:
评论

相关推荐

    Pandas-and-NumPy-Tips-Trick-and-Techniques-master.zip

    Pandas-and-NumPy-Tips-Trick-and-Techniques-master

    S-a-D-trick.rar_Join In

    在VB6(Visual Basic 6)中,"S-a-D-trick.rar_Join In" 这个主题涉及到的是文件分割与合并的技术。在处理大文件时,为了方便传输或者存储,我们可能会选择将其分割成多个小文件,而在需要使用整个文件时,则需要将...

    python-trick

    Python-trick,上传的事pdf文档

    在规定的时间内,使用鼠标控制帽子接住落下的保龄球,躲避炸弹。_Hat-Trick.zip

    在规定的时间内,使用鼠标控制帽子接住落下的保龄球,躲避炸弹。_Hat-Trick

    HLP-Trick-crx插件

    【HLP-Trick-crx插件】是一款专为解决特定网页限制而设计的浏览器扩展程序,主要用于恢复用户在浏览网页时被禁用的复制、粘贴功能,以及上下文菜单和本地高亮显示功能。这款插件特别适用于那些因为版权保护或者安全...

    深度学习领域CNN橄榄球比赛NFL目标检测(带数据集)-cnn-baseline-more-tta-trick

    语言:python 内容包括:源码、数据集、数据集描述、论文 目的:使用CNN算法在橄榄球比赛中目标检测。 带数据集很好运行,主页有搭建环境过程。主页有更多源码。 数据集描述如下: 在这场比赛中,你的任务是预测球员...

    ht-history:从 code.google.compht-history 自动导出

    ht-历史为在线足球经理 hattrick.org 提供多项统计数据版本历史: 添加, 移除,C 改变,v 0.1.24 - 2015 年 1 月 16 日; 下载: : C 允许负 id(几乎)无处不在; 从而修复溢出错误v 0.1.23 - 09/04/2014; 下载:...

    gtg-grind-trick-generator

    gtg-grind-trick-generator PWA Web应用程序(Node.js,JS,HTML,CSS) Chrome,Safari,Firefox,Edge(Android,iOS,MacOS,Windows) 离线工作Android应用程式使用Google Workbox,Webpack制作

    FoxTrick是一个浏览器扩展的帽子戏法在线足球经理游戏,目前可用于Firefox,谷歌Chrome,以及Opera。- minj / foxtrick

    Foxtrick enhances the user experience on Hattrick by providing tons of extra information, a lot of shortcuts, tweaks for the presentational layout of the web pages, analyses of matches, links to ...

    py-trick-book:关于 Python 的高级提示和技巧

    Python 提示和技巧 ... git clone https://github.com/plasmashadow/py-trick-book.git 我假设您安装了 ipython 导航到目录并执行 ipython notebook 笔记: 退出间谍活动并自己阅读 或者 保持冷静,加入草帽海贼团

    android环境搭建地址链接

    #### 3.1 Hat-trick与Hattrick adb设备管理 - `Hattrick adb devices`: 显示连接的设备列表。 - `adb push a.out /data`: 将本地文件`a.out`推送到设备的`/data`目录下。 - `adb shell ash`: 进入设备的shell环境。 ...

    ez-ipupdate动态域名解析

    我以前开发产品的动态域名解析 非常稳定 /* * ez-ipupdate * * a very simple dynDNS client for ... * I don't like to see UNIX get the short end of the stick. * * tested under Linux and Solaris. * */

    tips-n-trick

    ...DOCTYPE>声明、元素、元素和元素。<!...包含元数据,如标题()、字符集(<meta charset="UTF-8">)和链接外部资源(如CSS文件)。则包含网页的可见内容,如文本、图像、链接等。...例如,使用和来定义页面头部和底部,...

    21-card-trick:在 React 中完成的 21 张卡片技巧

    React 21 卡技巧一个演示卡片技巧的React应用程序。动机该项目旨在学习如何使用 React 钩子和进行嵌套的 api 调用。 该项目不再进行。怎么玩记住 21 张卡片中的 1 张后,单击完成。 选择您的卡片所在的 3 堆中的哪一...

    vdr-hattrick-开源

    1. 下载最新版本的源代码,例如压缩包内的hattrick-0.1.6。 2. 在VDR环境中编译和安装插件。这可能需要熟悉Linux环境和基本的编译命令。 3. 配置VDR以启用Hattrick插件,并设置与Hattrick账户的连接信息。 4. 更新...

    CMCC-Trick:招惹CMCC-* WLAN

    Trick-CMCC 利用CMCC公共热点的小漏洞免费上网~~ :) sudo ./conn.sh Notice: 目前只知道我工CMCC有这特色, 其他地区尚不明确 Notice: 脚本适用于使用NetWorkManager网络sds管理工具的系统 Notice: 不必惊讶原理, ...

    HLP-绝招「HLP-Trick」-crx插件

    该扩展程序重新启用网页上的复制/粘贴功能,上下文菜单和本机突出显示功能。 支持语言:English (United States)

    ISOIEC 13818-1.pdf

    - **DSM_trick_mode_flag (1 bit)**: 指示是否支持数字存储媒体(DSM)回放模式。 - **additional_copy_info_flag (1 bit)**: 指示是否存在附加的复制信息。 - **PES_CRC_flag (1 bit)**: 指示是否包含循环冗余校验...

    mazu-sim:航空航天6自由度仿真平台

    妈祖心 妈祖模拟(mazu-sim)是6DoF火箭模拟平台。 它基于 目的是提供验证飞行软件、交付精度的硬件在环和飞行测试。 入门 0. 克隆回购 ...1. 依赖 GCC 5.4以上 ... $ sudo apt-get install htop cmake vim tree git-...

Global site tag (gtag.js) - Google Analytics