程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> javascript-js裡操作DOM節點性能損失最低的方式是什麼?

javascript-js裡操作DOM節點性能損失最低的方式是什麼?

編輯:編程解疑
js裡操作DOM節點性能損失最低的方式是什麼?

可能這個標題不太合適,如下有個例子,一種是用原生js裡的創建節點、文本節點、插入父節點內的方式,一種是用數據格式化字符串的方式

// 方式1:
 var a = document.createElement('a');
 a.href = 'http://www.baidu.com';
 a.target ='_blank';
 var text = document.createTextNode('this is baidu homepage');
 a.appendChild(text);
 document.body.appendChild(a);

 //方式2:
 var data = {
  content: "this is baidu homepage",
    href: "http://www.baidu.com",
    target: "_blank"
 };
 var tpl = '<a href="{#href#}" target="{#target#}">{#content#}</a>';
 var tplEngine = function(data, tpl) {
    return tpl.replace(/\{#(\w+)#\}/g, function(match, key) {
           return typeof data[key] === undefined ? '' : data[key];
        });
 };
 document.body.innerHTML(tplEngine(data,tpl));

1、這兩種方式哪種性能損失更低?
2、innerHTML()方法的後台運行原理是什麼?是否和js的創建元素、文本節點、插入到父節點三個方法過程等價?

最佳回答:


innerHTML是屬性,不是方法

多個dom插入操作最好是用DocumentFragment,而不是每次都操作document,操作DocumentFragment,最後插入DocumentFragment到dom樹

不過最新浏覽器優化過,應該性能差不是很大

http://www.zhihu.com/question/27260165

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved