肖建芳
(汕头职业技术学院计算机系,汕头515041)
互联网+时代,各行各业都拥抱互联网,特别是在移动端快速发展的时代,网页不仅是呈现在用户的PC浏览器里,更多的时候,用户是通过移动产品浏览我们的网页。加之有越来越多的开发者投入到Web App 和Hybrid App 的开发队伍中,性能这一问题又再一次成为程序员们重点关注的问题。在用户就是上帝、速度为王的时代,用户的选择直接决定企业的生存。尤其是智能手机当道的今天,首屏显示时间决定了用户是否会继续选择你的网站和服务。因此,在网站生命周期过程中,不断对网站性能进行优化非常必要。
S 养生馆连锁店网站前端的主要作用是展示连锁店的企业文化、产品和服务,查看各地连锁店分布,以及提供更好的客户服务,同时用户也可以直接在网站上订购部分产品和服务,前端设计在该网站中占据着非常重要的地位。
浏览器的主要作用是将用户输入的网站“URL”转变成可视化的图像。这其中包含两个过程,一是网页加载过程,从“URL”到构建DOM(Document Object Model,文档对象模型)树;二是网页渲染过程,从DOM树到生成可视化图像,即我们看到的页面效果。网页渲染的过程其实就是将URL 对应的各种资源,通过浏览器渲染引擎的解析,输出可视化的图像。根据数据的流向,浏览器的渲染过程可以分成三个阶段(以WebKit 内核浏览器为例):从网页的URL 到构建完DOM 树;从DOM 树到构建完WebKit 的绘图上下文;从绘图上下文到生成最终图像。
浏览器渲染引擎主要包括HTML 解释器、CSS 解释器、布局和JavaScript(以下简称JS)解释器。其中,HTML 解释器主要作用是将HTML 文本解释成DOM树;CSS 解释器作用是为DOM 中各元素对象计算出样式信息;布局则是指在DOM 树创建之后形成一个内部表示模型,这个模型将HTML 元素与CSS 样式结合起来,计算出元素的具体大小和位置等布局信息;JS 解释器能够解释JS 代码并通过DOM 接口和CSSOM 接口来修改网页内容和样式信息,从而改变渲染的结果。随着JS 解释器越来越重要,JS 解释器逐渐脱离出来成为独立的JS 引擎。
根据浏览器渲染过程,构建Web 前端页面响应时间模型如下:
其中T 表示Web 前端页面响应时间,Tweb表示网络传输时间,TDOM表示构建DOM 树所需的时间,Tc表示从DOM 树到构建完WebKit 的绘图上下文时间,Tp表示从绘图上下文到生成最终图像的时间。
由公式可知,Tweb为网络传输时间,这个主要由网络带宽、数据传输量、用户及网站服务器所使用网络的软硬件环境决定,开发者无法改变。因此要缩短Web前端页面响应时间,进行前端页面渲染优化,开发者只能针对TDOM、Tc和Tp三个时间进行性能优化。
以S 养生馆连锁店网站为例,顾客就是上帝,网页打开的速度直接影响到顾客的网络体验,Web 开发必须从用户使用的角度出发。为了给用户更好的体验,通过对Web 前端页面响应时间模型进行分析,明确了在网页前端方面通过缩短TDOM、Tc和Tp三个时间可以优化网页加快网页的打开速度,确定从HTML 代码、CSS 样式、JavaScript 脚本和框架应用4 个方面给出优化策略。
首先,能使用静态页面的坚决不用动态页面。例如S 养生馆连锁店网站部分页面就具备内容较多、有较多数据库访问、会被频繁访问但较少更新的特点,将其中包括首页在内的部分页面设计成静态网页,然后定期更新,这可以减少每次访问时浏览器渲染的时间。
其次,设计时尽量使用HTML5 新增的语义化标签,例如
再次,在网站建设过程中不断进行测试分析,精简网页内容,删除无用的页面内容。在不影响网页效果的前提下,优化HTML 代码和结构,避免嵌套太多层以减少DOM 树深度。同时在网站上线前删除代码中无用的空格、制表符和换行符等。
第四,S 养生馆连锁店网站为了更吸引客户,前端页面以图文为主,使用了大量精美图片,所以对图片优化非常重要,主要使用了以下策略:部分使用字体图标替换普通图片,字体图标是矢量图,缩放不会失真且体积非常小;选择合适的图片压缩格式,本网站将部分JPEG 压缩格式图片替换为相应的WebP 压缩格式图片,发现图片的体积缩小到原来的三分之二左右,且图片质量更好,也节省了大量的服务器带宽资源和数据空间;本网站使用的图片素材都是先使用图片编辑工具尽量将其处理成所需要的大小和样式再使用,减少了浏览器的渲染时间;按需要分重点设置响应式图片效果。
最后,优化超级链接,借助工具查找出网站中失效的和错误的链接然后妥善处理,确保每个链接的准确指向。减少使用重定向链接,利用DNS 预取机制,指定需要预取的URL。
使用CSS 样式能实现网页内容和格式的分离,其有三种用法:样式属性(通过设置标签的style 属性实现)、内部样式(通过Web 文档
标签范围内使用一对