度量页面速度的几项指标

本文深入探讨了影响网页加载速度的关键指标——TTFB、TTSR、TTDC和TTFL,并提供了针对性的优化策略。通过减少DNS查询、使用CDN、优化JavaScript执行顺序、使用高效的CSS选择器等方法,可以显著提升网页性能。

度量页面速度的几项指标

作者:nunumick 发布时间:February 23, 2011 分类:性能与安全

from http://nunumick.me/blog/tag/TTFB/ 

1.TTFB(Time to First Byte)

TTFB-首字节时间,顾名思义,是指从客户端开始和服务端交互到服务端开始向客户端浏览器传输数据的时间(包括DNS、socket连接和请求响应时间),是能够反映服务端响应速度的重要指标。
ttfb

网页重定向越多,TTFB越高,所以要减少重定向
ttfb_redirect

TTFB优化:

  1. 减少DNS查询
  2. 使用CDN
  3. 提早Flush
  4. 添加周期头

2.TTSR(Time to Start Render)

TTSR-开始渲染时间,指某些非空元素开始在浏览器显示时的时间,这也是一项重要指标,即TTSR越短,用户越早浏览器中的内容,心理上的等待时间会越短。过多的CPU消耗会拖慢TTSR,所以网站中有大量图片和脚本往往会造成不良用户体验。
ttsr

TTSR优化:

  1. 优化TTFB
  2. 降低客户端CPU消耗,即页面加载初期不要有大脚本运行,把JS脚本放到页面下方
  3. 使用效率较高的CSS选择器,避免使用CSS表达式
  4. 避免使用CSS滤镜

前端TTSR测试脚本:

    <head>
        <script>
            (function(){
                var timeStart = + new Date,
                    limit = 1,
                    timer = setInterval(function(){
                    if((document.body&&document.body.scrollHeight > 0) || (limit++ == 500)){
                        clearInterval(timer);
                        console.info('TTSR:',+ new Date - timeStart,';duration:',limit);
                    }
                },10);
            })()
        </script>
    </head>

在页面端无法简单测试出具体的TTSR,不过可以通过模拟脚本得到大概的时间,Firefox提供了一个MozAfterPaint事件,经测试,用于TTSR并不准确,如果有MozBeforePaint事件该有多好。

3.TTDC(Time to Document Complete)


TTDC-文档完成时间,指页面结束加载,可供用户进行操作的时间,等价于浏览器的onload事件触发点。TTDC是比较重要的性能优化对象,TTDC越低,页面加载速度越快,用户等待时间越短。
ttdc

TTDC优化:

  1. 优化TTFB
  2. 优化TTSR
  3. 参考YSLOW优化最佳实践
  4. 优化首屏时间,将不必要的页面加载放到onload事件之后

TTDC前端测试:
常见性能测试平台大多使用IE浏览器的DocumentComplete事件来度量TTDC,DocumentComplete事件触发时,页面的状态应是READYSTATE_COMPLETE,所以在页面中我们可以用JS脚本判断:

    var win = window,doc = document;
    if(win.attachEvent || doc.hasOwnProperty('onreadystatechange')){
        doc.onreadystatechange = function(){
            if(doc.readyState == 'complete'){
                /**
                 * test
                    do something...
                 */
            }
        }
    }else{
        win.addEventListener('load',function(){
            /**
             * test
                do something...
             */
        },false);
    }

4.TTFL(Time to Fully Loaded)

TTFL-完全加载时间,指页面在onload之前和onload事件之后额外加载的内容所花费的时间的总和,即页面完完全全加载完毕消耗的总时间。
ttfl

TTFL优化:

  1. 优化TTFB
  2. 优化TTSR
  3. 优化TTDC
  4. 延迟加载
  5. 异步加载
  6. 按需加载
### 使用 Axure RP 创建图书管理系统的登录界面原型 #### 设计准备 在使用 Axure RP 创建登录页面之前,需要明确以下几个要素[^1]: - 页面布局:通常包括标题栏、输入框区域以及按钮。 - 用户交互:用户需要能够输入用户名和密码,并提交表单。 - 响应式设计支持:确保不同设备上的显示效果一致。 #### 登录页面的主要组件 以下是构建登录页面所需的关键组件及其功能描述: 1. **标题**:用于展示应用名称或欢迎语句。 2. **输入字段**:两个主要的文本输入框分别对应“用户名”和“密码”。 3. **按钮**:提供“登录”操作的功能入口。 4. **链接选项**(可选):如“忘记密码?”或“注册新账户”。 #### 步骤说明 以下是具体的设计方法: ##### 1. 设置画布尺寸 打开 Axure RP 后新建项目,默认情况下会有一个空白页。调整该页面大小以适应目标屏幕分辨率,比如常见的桌面端宽度为 `1920px` 或移动端宽度为 `375px`。 ##### 2. 添加基本元素 利用左侧工具栏中的形状库拖拽矩形作为背景容器;再放置静态文本标签设置标题文字内容【例如:“图书馆管理系统 - 登入”】。 ##### 3. 构建表单项 对于每个数据收集项都需要单独配置其属性以便后续验证处理: - 插入两个独立的TextBox控件代表用户的账号名与秘密编码; - 给定相应的Placeholder提示信息帮助引导填写正确格式的内容。 ##### 4. 定义行为动作 双击进入元件内部编辑模式下找到事件面板,在这里指定当点击Login按键触发的动作序列——这可能涉及跳转至另一个画面或者调用外部API接口完成身份认证流程等等[^2]。 ##### 5. 测试预览效果 保存所做的更改之后运行Preview命令查看实际渲染出来的样子是否满足预期标准。如果有必要的话还可以进一步优化视觉样式直至满意为止。 ```xml <!-- 示例代码 --> <Widget label="Username"> <Textbox placeholder="Enter your username"/> </Widget> <Widget label="Password"> <Textbox type="password" placeholder="Enter your password"/> </Widget> <Button text="Log In" onClick="submitForm()"></Button> ``` #### 注意事项 为了提高用户体验度量指标,请考虑加入一些额外特性如记住我的复选框允许自动填充上次使用的凭证资料等功能点[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值