前端性能优化:DOM操作性能优化建议

其实在web开发中,单纯因为js导致性能问题的很少,主要都是因为DOM操作引起的。

1查找元素的优化

2改变DOM,包括添加,修改,删除DOM

3改变DOM的样式类等

4批量修改DOM

5减少iframe

6样式放在header中,脚本放在关闭标签</body>之前



1查找元素的优化

  因为ID是唯一的,也有原始的方法,因此使用ID查找元素是最快的,其次的是根据类和类型查找元素,通过属性查找元素是最慢的,因此应该尽可能的通过ID或者类来查找元素,避免通过类来查找元素。


2改变DOM,包括添加,修改,删除DOM

  改变DOM就会引起浏览器渲染,而渲染是相当慢的,因此应该避免不必要的渲染

 divUpdate.innerHTML = "";
 for ( var i=0; i<100; i++ )
 {
  divUpdate.innerHTML += "<SPAN>This is a slower method! </SPAN>";
 }

改为

var str="";
 for ( var i=0; i<100; i++ )
 {
  str += "<SPAN>This is faster because it uses a string! </SPAN>";
 }
 divUpdate.innerHTML = str;

3改变DOM的样式类等

 改变DOM元素的样式,类也会导致浏览器渲染,因此也应该减少不必要的操作

 var el = document.getElementById(‘mydiv‘);
el.style.borderLeft = ‘1px‘;
el.style.borderRight = ‘2px‘;
el.style.padding = ‘5px‘; 

改为

 var el = document.getElementById(‘mydiv‘);
el.style.cssText = ‘border-left: 1px; border-right: 2px; padding: 5px;‘; 

4批量修改DOM时从文档流中摘除该元素 ,对其应用多重改变 ,将元素带回文档中 

这样可以最小化重绘和重排版   ,

具体方法:

1 隐藏元素,进行修改,然后再显示它。

2将原始元素拷贝到一个脱离文档的节点中,修改副本,然后覆盖原始元素。

5减少iframe

   iframe需要消耗大量的时间,并阻塞下载,建议少用

据说动态给iframe添加URL可以改善性能,未做测试

6样式放在header中,脚本放在关闭标签</body>之前

      样式放在header中,可以加快渲染,脚本放在关闭标签</body>之前可以加快下载速度,不免阻塞下载。

 

微软参考文章

时间: 2024-10-10 05:30:54

前端性能优化:DOM操作性能优化建议的相关文章

性能测试(六)前端性能优化方法

日常工作和生活中,我们经常利用浏览器去打开一些URL来获取我们所需的资源,那么作为一个开发者或者性能测试工程师,如何去测试并提升优化前端的性能呢? 一.浏览器打开URL和方式和过程 不同浏览器工作方式不完全一样,大体来讲,浏览器的核心是浏览器引擎:不同浏览器对W3C的规范支持不尽相同,在具体功能的实现上也不完全一致. 1.连接到URL所在的服务器 用户在浏览器地址栏输入URL,打开URL时,浏览器首先寻找该URL所在的服务器.通过向DNS服务器查询,获取该URL所在网站的IP地址,然后浏览器向该

前端性能优化最佳实践

最佳实践1:使用DocumentFragments或innerHTML取代复杂的元素注入 DOM操作在浏览器上是要付税的.尽管性能提升是在浏览器,DOM很慢,如果你没有注意到,你可能会察觉浏览器运行非常的慢.这就是为什么减少创建集中的DOM节点以及快速注入是那么的重要了. 现在假设我们页面中有一个<ul>元素,调用AJAX获取JSON列表,然后使用JavaScript更新元素内容.通常,程序员会这么写: Javascript代码 var list = document.querySelecto

前端性能的优化总结

前端性能优化可以分为两大类分别是页面级别优化包含了http请求数以及内联脚本位置优化,代码级别的优化包含DOM操作优化,CSS选择符优化以及图片优化等 前端里面包含的内容是丰富的,它包括HTML,CSS以及JS和图片等各种各样的资源.因此前端优化是复杂的和必要的,接下来在文章中为大家介绍前端性能优化的方法,具有一定的参考作用,希望对大家有所帮助. 优化的目的 优化的目的在于让页面加载的更快,对用户操作响应更及时,为用户带来更好的用户体验,对于开发者来说优化能够减少页面请求数,能够节省资源. 前端

关于DOM的优化以及js的性能问题

http://www.ruanyifeng.com/blog/2014/10/event-loop.html   写的很好的JavaScript运行机制的详解: http://web.jobbole.com/82631/  还有这个是很好的解释的Javascript的性能 关于DOM的优化 为什么是DOM 标准的xml/html的文本解析协议,常见的有DOM与SAX.在解析速度及内存占用上,SAX比DOM有优势,但为什么浏览器选择DOM解析html? (1)DOM VS SAX SAX提供一次性

web前端性能优化

前言:  在同样的网络环境下,两个同样能满足你的需求的网站,一个“Duang”的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒,如果等待超过10秒,99%的用户会关闭这个网页.也许这样讲,各位还不会有太多感触,接下来我列举一组数据:Google网站访问速度每慢400ms就导致用户搜索请 求下降0.59%;Amazon每增加100ms网站延迟将导致收入下降1%;雅虎如果有400ms延迟会导致流量下降5-9%.网站的加载速度严重影响了用户体验,也决

2017前端性能优化清单

https://github.com/Findow-team/Blog/issues/11?utm_source=tuicool&utm_medium=referral 2017前端性能优化清单 你开始使用渐进启动了么?是不是已经使用过React和Angular中tree-shaking和code-splitting两个工具?有没有用过Brotli.Zofli和HPACK这几种压缩技术,或者OCSP协议(在线证书状态协议)?知不知道资源提醒,客户端提醒和CSS containment一类的技术?

关于web前端性能优化问题

好久没有来博客写随笔了,可能是懒了吧,哈哈, 最近很想整理一篇关于前端性能优化的问题,毕竟能提高网站的观赏性对吧.提升网站性能,提升用户体验 那 什么是web性能优化? 可以这么理解:从用户访问资源到资源完整的展现在用户面前的过程中,通过技术手段和优化策略,缩短每个步骤的处理时间从而提升整个资源的访问和呈现速度. 那么怎么才能提高web性能优化呢? 可以从这几个方面考虑:   1.减少HTTP请求 首先,每个请求都是有成本的,既包含时间成本也包含资源成本.一个完整的请求都需要经过 DNS寻址.与

前端性能优化(转)

前端是庞大的,包括 HTML. CSS. Javascript.Image .Flash等等各种各样的资源.前端优化是复杂的,针对方方面面的资源都有不同的方式.那么,前端优化的目的是什么 ? 1. 从用户角度而言,优化能够让页面加载得更快.对用户的操作响应得更及时,能够给用户提供更为友好的体验. 2. 从服务商角度而言,优化能够减少页面请求数.或者减小请求所占带宽,能够节省可观的资源. 总之,恰当的优化不仅能够改善站点的用户体验并且能够节省相当的资源利用. 前端优化的途径有很多,按粒度大致可以分

前端性能优化23条

1. 减少HTTP请求次数 尽量合并图片.CSS.JS.比如加载一个页面,如果有5个css文件的话,那么会发出5次http请求,这样会让用户第一次访问你的页面的时候会长时间等待.而如果把这个5个文件合成一个的话,就只需要发出一次http请求,节省网络请求时间,加快页面的加载.   2. 使用CDN 网站上静态资源即css.js全都使用cdn分发,图片亦然.   3. 避免空的src和href 当link标签的href属性为空.script标签的src属性为空的时候,浏览器渲染的时候会把当前页面的