计算dom渲染完成所需时间

当超长页面时,进入页面滚动条不在最顶部的处理
实现原理: onload事件监听

  • 计算dom加载完成所需时间
  • 在此时间后调用scrollTo(0,0)回到顶部

domLoading:返回当前网页DOM结构开始解析时(即Document.readyState属性变为“loading”、相应的readystatechange事件触发时)的Unix毫秒时间戳。
domComplete:返回当前网页DOM结构生成时(即Document.readyState属性变为“complete”,以及相应的readystatechange事件发生时)的Unix毫秒时间戳。

<div
      className={styles.wrapper}
      style={{
        background: '#F5F7FA',
      }}
      onLoad={() => {
        var _per = window.performance;
        function getsec(time){
            return time/1000+'s';
        };
        const test = getsec(_per.timing.domComplete-_per.timing.domLoading) || 5;
        setTimeout(() => {
          window.scrollTo(0,0);
        }, test * 1000);
        console.log("dom渲染耗时:"+getsec(_per.timing.domComplete-_per.timing.domLoading));
      }}
    >
      .... 特别长的dom树
    </div>

参考:
h5中performance.timing轻松获取网页各个数据 如dom加载时间 渲染时长 加载完触发时间
JavaScript获取页面加载时间和页面停留时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值