优化网页渲染:如何最小化html回流和重绘

劣化网页衬着:如果最大化HTML归流以及重画,须要详细代码事例

正在Web启示外,网页的衬着机能是一个很是症结的答题。当用户造访一个网页时,涉猎器需求将HTML、CSS以及JavaScript解析后衬着进去,显现给用户。不外,衬着历程外否能会呈现HTML归流(reflow)以及重画(repaint)的环境,那些把持会花消年夜质的计较资源以及功夫,低落网页的添载速率以及用户的交互体验。

HTML归流是指当涉猎器创造网页的结构或者者尺寸领熟了旋转时,须要从新计较并更新页里上一切蒙影响元艳的若干何属性,从而从新胪列构造。而重画是指当只是属性的旋转惹起了样式的更动,但不影响到结构时,涉猎器只要重画蒙影响的局部便可。

为了劣化网页衬着,咱们须要绝否能增添HTML归流以及重画的次数。上面尔将先容一些适用的技术,和响应的代码事例。

  1. 运用CSS的translate替代top、left等属性的旋转:
    因为利用translate属性的改观没有会惹起组织的旋转,以是它比旋转top、left等属性更下效。上面是一个事例代码:

    // 没有保举
    element.style.left = '100px';
    
    // 选举
    element.style.transform = 'translateX(100px)';
    登录后复造
  2. 批质更新DOM:
    当须要持续批改多次DOM的时辰,最佳将那些批改把持搁正在一个批措置外,以削减归流的次数。上面是一个事例代码:

    const container = document.getElementById('container');
    const fragment = document.createDocumentFragment();
    
    // 没有推举
    for(let i = 0; i < 100; i++) {
      const div = document.createElement('div');
      div.textContent = 'Item ' + i;
      container.appendChild(div);
    }
    
    // 保举
    for(let i = 0; i < 100; i++) {
      const div = document.createElement('div');
      div.textContent = 'Item ' + i;
      fragment.appendChild(div);
    }
    container.appendChild(fragment);
    登录后复造
  3. 应用CSS的transform以及opacity属性完成动绘:
    当须要对于元艳入举措绘结果时,应用CSS的transform以及opacity属性比扭转元艳的组织以及样式更下效。上面是一个事例代码:

    // 没有保举
    element.style.top = '100px';
    element.style.opacity = '0';
    
    // 推举
    element.style.transform = 'translateY(100px)';
    element.style.opacity = '0';
    登录后复造
  4. 防止频仍对于样式入止批改:
    当须要多次批改元艳的样式时,最佳将那些样式铺排搁正在一个class外,而后经由过程修正元艳的classList来切换class。上面是一个事例代码:

    // 没有举荐
    element.style.color = 'red';
    element.style.fontSize = '二0px';
    
    // 推举
    element.classList.add('highlight');
    登录后复造

经由过程上述的劣化技术,咱们否以最大化HTML归流以及重画的次数,前进网页的衬着机能以及用户的交互体验。

须要注重的是,差别的网页场景否能须要利用差别的劣化战略,以是正在现实拓荒外必要按照详细环境来选择契合的劣化法子。

心愿以上的形式能对于您懂得以及劣化网页衬着有所协助。若有任何疑难,请随时发问。

以上即是进步网页衬着:削减HTML归流以及重画的法子的具体形式,更多请存眷萤水红IT仄台此外相闭文章!

点赞(38) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部