页面渲染有哪些过程可以优化

1、DNSprefetch:DNS预解析就是根据浏览器定义的规则,提前解析之后可能会用到的域名,使解析结果缓存到系统缓存中,缩短dns解析时间,来提高网站的访问速度

2、利用缓存机制,缓存又分为CDN缓存,浏览器缓存,本地缓存

1)CDN缓存,CDN就是内容分发网络,往往用来存放像js,css,图片等资源

2)浏览器缓存机制里重要的是http缓存,http缓存分为强制缓存和协商缓存,强制缓存:当缓存数据库中有客户端需要的数据,客户端直接将数据从其中拿出来使用,当缓存中没有需要的数据时,客户端才会向服务端请求。协商缓存:客户端会先从缓存数据库拿到一个缓存的标识,然后向服务端验证标识是否失效,如果没有失效服务端就会返回304,这样客户端就可以直接去缓存数据库拿出数据,如果失效,服务端就会返回新的数据。强制缓存的优先级高于协商缓存

3)本地缓存,本地缓存可以使用cookie,localStorage,sessionStorage,indexDB,Cookie:第一次访问网站的时候,浏览器发出请求,服务端会将cookie放入到响应请求中,在浏览器第二次发请求的时候,会把cookie带过去,服务端就会辨别用户的身份,cookie一旦成功创建以后,名字不能修改,cookie不支持跨域,一个域名下面的cookie不能超过20个,同一个域名下的所有请求,都会携带cookie。localStorage是持久化的本地存储,存储在其中的数据是永远不会过期的,使其消失的唯一办法就是手动删除,sessionStorage是临时性的本地存储,他是会话级别的存储,当会话结束时,存储的内容也会被释放;indexDB是一个运行在浏览器上的非关系型数据库,它不仅可以存储字符串,还可以存储二进制数据

3、解析渲染页面可以做哪些优化?

  1. css阻塞:css解析为CSSOM和html解析为DOM是并行进行的,因为html是先解析的,往往需要等待css解析,这就造成了css阻塞,可以通过把css样式表通过<style>标签内联到网页中,或者把css资源放在CDN缓存里来进行优化
  2. Js阻塞:可以尽量把js文件放在body的底部,或者使用defer和async来进行优化
  3. 回流与重绘

回流:也叫做重排,当我们对 DOM 的修改引发了 DOM 尺寸的变化时,浏览器需要重新计算元素的几何属性,其他元素的几何属性和位置也会因此受到影响,然后再将计算的结果绘制出来。这个过程就是回流

重绘:改变某个元素的背景色、文字颜色、边框颜色等等不影响它周围或内部布局的属性时,屏幕的一部分要重画,但是元素的几何尺寸没有变。这个过程就叫重绘

重绘不一定导致回流,回流一定会导致重绘。

减少重绘和回流的方法

css:

  1. 避免使用table布局。
  2. 尽可能在DOM树的最末端改变class。
  3. 避免设置多层内联样式。
  4. 将动画效果应用到position属性为absolute或fixed的元素上。
  5. 避免使用CSS表达式。

javascript:

  1. 最好一次性重写style属性,或者将样式列表定义为class并一次性更改class属性。
  2. 避免频繁操作DOM,创建一个documentFragment,在它上面应用所有DOM操作,最后再把它添加到文档中。
  3. 也可以先为元素设置display: none,操作结束后再把它显示出来。因为在display属性为none的元素上进行的DOM操作不会引发回流和重绘。
  4. 具有复杂动画的元素使用绝对定位,使它脱离文档流
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值