站长网 教程 使用Chrome Timeline来完善页面性能

使用Chrome Timeline来完善页面性能

副标题#e# 嗯没错就是它。下面逐一介绍一下吧。区域 1 是一个缩略图,可以看到除了时间轴以外被上下分成了四块,分别代表 FPS、CPU 时间、网络通信时间、堆栈占用;这个缩略图可以横向缩放,白色区域是下面可以看到的时间段(灰色当然是不可见的啦)。区域 2

副标题#e#

嗯没错就是它。下面逐一介绍一下吧。区域 1 是一个缩略图,可以看到除了时间轴以外被上下分成了四块,分别代表 FPS、CPU 时间、网络通信时间、堆栈占用;这个缩略图可以横向缩放,白色区域是下面可以看到的时间段(灰色当然是不可见的啦)。区域 2 可以看一些交互事件,例如你滚动了一下页面,那么这里会出现一个 scroll 的线段,线段覆盖的范围就是滚动经过的时间。区域 3 则是具体的事件列表了。

一开始没有记录的时候,所有的区域都是空的。开始统计和结束统计都很简单,左上角那坨黑色的圆圈就是。它右边那个长得像“禁止通行”的按钮是用来清除现有记录的。当有数据的时候,我们把鼠标滚轮向上滚,可以看到区域被放大了:

短短的时间里,浏览器做了这么多事情。对于一般的屏幕,原则上来说一秒要往屏幕上绘制 60 帧,所以理论上讲我们一帧内的计算时间不能超过 16 毫秒,然而浏览器除了执行我们的代码以外,还要干点别的(例如计算 CSS,播放音频……),所以其实我们能用的只有 10~12 毫秒左右。

差不多熟悉操作了,那么就来一下实战吧!假如有一天,你接手了这样一段代码:

<!– 一段小动画:点击按钮之后会有一个爆炸的粒子效果 –> 

<!DOCTYPE html> 

<html> 

<head> 

    <meta charset="utf-8"> 

    <title>Test</title> 

    <style> 

        .main { 

            position: relative; 

            width: 500px; 

            height: 500px; 

            background: #000; 

            overflow: hidden; 

        } 

        .circle { 

            position: absolute; 

            border-radius: 50%; 

            border: 1px solid #FFF; 

            width: 8px; 

            height: 8px; 

        } 

    </style> 

</head> 

<body> 

    <div class="main"></div> 

    <hr> 

    <button onclick="showAnimation()">点我</button> 

    <script src="jquery.min.js"></script> 

    <script src="animation.js"></script> 

</body> 

</html> 

// animation.js  

  

// 粒子总数  

var COUNT = 500;  

// 重力  

var G = -0.1;  

// 摩擦力  

var F = -0.04;  

  

function init() {  

    for (var i = 0; i < COUNT; i++) {  

        var d = Math.random() * 2 * Math.PI;  

        var v = Math.random() * 5;  

        var circle = $('<div id="circle-' + i + '" class="circle" data-x="250" data-y="250" data-d="' + d + '" data-v="' + v + '"></div>');  

        circle.appendTo($('.main'));  

    }  

}  

  

function updateCircle() {  

    for (var i = 0; i < COUNT; i++) {  

#p#副标题#e#

        var x = parseFloat($('#circle-' + i).attr('data-x'));  

        var y = parseFloat($('#circle-' + i).attr('data-y'));  

        var d = parseFloat($('#circle-' + i).attr('data-d'));  

        var v = parseFloat($('#circle-' + i).attr('data-v'));  

        var vx = v * Math.cos(d);  

        var vy = v * Math.sin(d);  

        if (Math.abs(vx) < 1e-9) vx = 0;  

        // 速度分量改变  

        vx += F * Math.cos(d);  

        vy += F * Math.sin(d) + G;  

        // 计算新速度  

        v = Math.sqrt(vx * vx + vy * vy);  

        if (vy > 0) d = Math.acos(vx / v);  

        else d = -Math.acos(vx / v);  

        // 位移分量改变  

        x += vx;  

        y += vy;  

        $('#circle-' + i).attr('data-x', x);  

        $('#circle-' + i).attr('data-y', y);  

        $('#circle-' + i).attr('data-d', d);  

        $('#circle-' + i).attr('data-v', v);  

        $('#circle-' + i).css({'top': 400 – y, 'left': x});  

    }  

}  

  

var interval = null;  

  

function showAnimation() {  

    if (interval) clearInterval(interval);  

    $('.main').html('');  

    init();  

    interval = setInterval(updateCircle, 1000 / 60);  

}  

使用Chrome Timeline来完善页面性能

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/video/2021/0524/5736.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部