javascript基础六 (DOM优化)
2016-04-22 11:08
417 查看
/** * DOM优化: * 1:innerHTML与DOM操作方法,那个效率会更高 * chrome:DOM方法要比innerHTML的方法要好 * firefox:正好相反 * 2:cloneNode复制节点要比创建新节点,性能优化的多 * 3:减少DOM的频繁操作 * 4:新的选择器querySelectorAll() * * DMON与浏览器 * 1:重排;改变页面的内容 * 2:重绘:浏览器的显示内容 * 3:添加顺序 * -尽量在appendChild前添加操作 * 4:合并DOM操作 * 5:缓存布局信息 (用变量来代替dom) * 6:文档碎片 * -createDocumentFragment * * DOM与前端模板 */ var oUl = document.getElementById('ul'); var oLi = document.querySelectorAll("#ul li"); var str = ""; console.time('hello'); for(var i=0;i<5000;i++){ //innerHTML方法 str += "<li>"+i+"</li>"; } oUl.innerHTML = str; console.timeEnd('hello'); console.time('DOM'); for(var i=0;i<5000;i++){ //innerHTML方法 //DOM方法 var oLi = document.createElement("li"); oLi.innerHTML = 'li'; oUl.appendChild(oLi); } // oUl.innerHTML = str; console.timeEnd('DOM'); console.time('cloneNode'); var oLi = document.createElement("li"); oLi.innerHTML = "li"; for(var i=0;i<5000;i++){ var newLi = oLi.cloneNode(true); // oLi.innerHTML = 'li'; oUl.appendChild(newLi); } console.timeEnd('cloneNode');
相关文章推荐
- servlert生成session传到jsp,servlert从jsp页面获取session的值
- sparkR read json file error
- iOS与JavaScript交互总结
- javascript变量声明提升(hoisting)
- js闭包
- JS中数组排序
- 资源分享(前端,JavaScript)
- javascript中的for in 和 in运算符
- Javascript中数组与字典(即map)的使用
- js数组
- angular js emit vs broadcast
- javascript设计模式--抽象工厂模式
- 有关javascript函数本身链式操作的一道题的解法 例:add(1)(2)(3) == 6
- js正则表达式语法
- javascript设计模式介绍(三) 原型模式
- 对javascript匿名函数的理解
- JS验证逗号隔开可以是中文字母数字
- Javascript正则表达式完全学习手册
- JS简单循环遍历json数组的方法
- js页面跳转常用的几种方式