前端性能

为什么要关注前端性能?

对于互联网公司来说,性能的好坏会从根本上影响到公司的利益

性能

影响

Yahoo延迟400ms

流量下降了5-9%

Bing延迟了2s

收入下降了4.3%

Google延迟400ms

搜索量下降0.59%

Mozilla页面打开减少2.2s

下载量提升5.4%

Netflix开启Gzip

性能提升13.25% 带宽减少50%

前端性能测试工具:

Yslow

前端性能优化:

1、减少http请求

大部分时间都是在下载页面中的所有组件,如图片、css、js、flash等等,减少组件的数量便可以减少了去请求组件、下载组件的时间,优化方法:

a、合并css、js脚本

b、将背景图片合并为一个图片,使用css样式的background-image和background-position属性来调整需要显示的图片内容

c、image maps将多个图像组合成单个图像

2、使用CDN

Content Delivery Network或Content Distribute Network,即内容分发网络,解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景,使用户可就近取到所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率

80-90%的最终用户响应时间用于下载页面中的所有组件:图片、样式表、脚本、flash等

3、添加Expires头

首次访问页面可能需要发出多个HTTP请求,但是通过使用Expires头文件,可以使这些组件加入到缓存之中,对于静态组件,通过设置Expires策略告诉浏览器缓存有效期持续到XXX,这段时间内直接走缓存就行,对于动态组件,使用适当的Cache-Control,Cache-Control:max-age=30,指定组件缓存多久,从请求开始在max-age时间内浏览器使用缓存,之外的使用请求(单位:秒),如果对浏览器兼容性要求很高的话,可以两个都使用

4、压缩组件

Gzip是目前最流行和最有效的压缩方法,Gzipping通常将响应时间减少约70%,目前大约90%的互联网流量都是通过支持gzip的浏览器传播的,图片和pdf不需要压缩

5、样式表置于顶部

6、脚本置于底部

7、避免CSS表达式

8、使用外部js和css

9、精简js
10、避免重定向

11、删除重复脚本

12、配置Etag

13、尽量减少iframe的数量

14、保持组件低于25K

15、避免空图像src

16、减少DNS查找

 

把showslow.zip上传到服务器的/opt/lampp/htdocs路径下,然后解压一下,解压的命令是unzip showslow_1.2.2.zip,解压完成后改名,将showslow_1.2.2改成showslow,命令是mv showslow_1.2.2 showslow,然后访问一下192.168.1.9/showslow,展示如下页面:

在showslow目录下找到config.sample.php,将config.sample.php改名成config.php,然后vi config.php,修改数据库的配置信息,如下图:

将$user改成'root',$pass改成'123456',服务器在本机上$host不用动,没改过端口$port也不用修改

将email的注释取消掉,改成如下图所示的内容:

在/opt/lampp/bin目录下执行./mysql -uroot -p123456;进入mysql客户端,show databases;没有发现showslow数据库,创建一个showslow数据库,命令是create database showslow;,然后在浏览器里访问192.168.1.9/showslow/dbupgrade.php,显示如下页面:

再访问http://192.168.1.9/showslow/configure.php(showslow下面有configure.php这个文件),默认在Configuring tools标签下,显示如下页面:

在上面页面可以看到YSlow、Page Speed和dynaTrace AJAX Edition,这里主要就用YSlow,所以配置YSlow就行,在火狐浏览器里输入about:config(上面的页面上提示输入这个),点击回车,显示如下页面:

 

然后点击我了解此风险,弹出如下页面:

 

在搜索框里输入yslow,点击回车,按照刚才页面的配置

 本浏览器的yslow被移除了,所以配置不了,再把extensions.yslow.autorun改成true

配置完之后在Firefox浏览器里随便打开一个网页,然后刷新,showslow会自动测试,然后回到http://192.168.1.9/showslow/页面,可以看到好多页面(一个门户网站至少有10个页面),结果都会发过来,showslow让服务器自动收集测试数据,然后点击一个链接页面进来可以看到如下页面:

所有的评分项都在这,刷新一次页面关掉它,公司定义标准,A不用管,F要关注一下,YSlow是Yahoo开发者团队发布的一款基于Firebug的插件,还可以用pagespeed,pagespeed是谷歌的,需要FQ,中文的

posted @ 2019-09-14 23:14  laosun0204  阅读(192)  评论(0编辑  收藏  举报