网页性能优化

(这些事废话大家随意ha)之前一直不太注意这方面的需求,而且项目代码量也不是很多看起来好像没什么前端性能方面的问题,加之公司项目方面也没太要求,所以我就似偷懒了嘛,氮素最近面试还是总结下吧hhhhh

首先造成前端性能方面的东西从最基本的页面渲染方面那就是重排和重绘

“重绘"不一定需要"重排”,“重排"必然导致"重绘”。
参考博客看这里原文链接

例如:一般来说,样式的写操作会造成页面的重新渲染


offsetTop/offsetLeft/offsetWidth/offsetHeight
scrollTop/scrollLeft/scrollWidth/scrollHeight
clientTop/clientLeft/clientWidth/clientHeight
getComputedStyle()

大家可自行试下哦

// bad
document.getElementsByTagName('div')[0].style.left = document.getElementsByTagName('div')[0].offsetLeft + 10 + "px";
 
// good
//var left = document.getElementsByTagName('div')[0].offsetLeft;
//document.getElementsByTagName('div')[0].style.left = left + 10 + "px";
合并操作1. 多个读操作之后执行写操作如上面。 2. 操作样式可以统一操作类名
操作非真实dom1. 可使用js完成对操作的DOM对象在统一插入到页面中。2. 使用虚拟DOM的脚本库,比如React等
改变操作dom的属性1. position属性为absolute或fixed的元素,重排的开销会比较小,因为不用考虑它对其他元素的影响。2. 只在必要的时候,才将元素的display属性为可见,因为不可见的元素不影响重排和重绘。另外,visibility : hidden的元素只对重绘有影响,不影响重排。(这个可参考理解vue的v-show和v-if)
公共方法window.requestAnimationFrame(),将读操作和写操作的重新渲染统统放到下一次重新渲染,通过减少渲染次数提高网页性能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值