国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

清空元素html("") innerHTML="" 與 empty()的區(qū)別和應(yīng)用(推薦)

2019-11-19 15:48:21
字體:
供稿:網(wǎng)友

一、清空元素的區(qū)別

     1、錯誤做法一:

           $("#test").html("");//該做法會導(dǎo)致內(nèi)存泄露

     2、錯誤做法二:

           $("#test")[0].innerHTML="";  ;//該做法會導(dǎo)致內(nèi)存泄露

     3、正確做法:

        //$("#test").empty();       

二、原理:

在 jQuery 中用 innerHTML 的方法來清空元素,是必然會導(dǎo)致內(nèi)存泄露的,由于 jquery 對于同一元素多事件處理沒有直接采用瀏覽器事件模型,而是自己緩存事件,遍歷觸發(fā),以及便于 trigger 程序觸發(fā) :

// Init the element's event structure  var events = jQuery.data(elem, "events") || jQuery.data(elem, "events", {}),   handle = jQuery.data(elem, "handle") || jQuery.data(elem, "handle", function(){   // Handle the second event of a trigger and when   // an event is called after a page has unloaded   return typeof jQuery !== "undefined" && !jQuery.event.triggered ?    jQuery.event.handle.apply(arguments.callee.elem, arguments) :    undefined;   }); 

采用 data 方法,將一些數(shù)據(jù)關(guān)聯(lián)到了元素上面,上述事件即是采用該機(jī)制緩存事件監(jiān)聽器。

那么就可以知道,直接 innerHTML=“” 而不通知 jquery 清空與將要刪除元素關(guān)聯(lián)的數(shù)據(jù),那么這部分?jǐn)?shù)據(jù)就再也釋放不了了,即為內(nèi)存泄露。

remove: function( selector ) {  if ( !selector || jQuery.filter( selector, [ this ] ).length ) {   // Prevent memory leaks   jQuery( "*", this ).add([this]).each(function(){   jQuery.event.remove(this);   jQuery.removeData(this);   });   if (this.parentNode)   this.parentNode.removeChild( this );  }  },  empty: function() {  // Remove element nodes and prevent memory leaks  jQuery(this).children().remove();   // Remove any remaining nodes  while ( this.firstChild )   this.removeChild( this.firstChild );  }

  以上就是小編為大家整理的清空元素html("")、innerHTML="" 與 empty()的區(qū)別和應(yīng)用的全部內(nèi)容啦~希望能夠幫助到各位朋友~~

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江北区| 许昌县| 江门市| 平潭县| 乐清市| 丽水市| 封开县| 镇雄县| 泌阳县| 兰坪| 郴州市| 礼泉县| 和政县| 罗甸县| 大关县| 东平县| 丰镇市| 旬邑县| 静乐县| 中阳县| 洪雅县| 开鲁县| 漯河市| 信宜市| 通海县| 唐海县| 深泽县| 青岛市| 青海省| 治县。| 乐至县| 崇州市| 寻甸| 三台县| 青田县| 墨竹工卡县| 田林县| 泰和县| 安岳县| 德格县| 昂仁县|