专栏名称: 高效运维
高效运维公众号由萧田国及朋友们维护,经常发布各种广为传播的优秀原创技术文章,关注运维转型,陪伴您的运维职业生涯,一起愉快滴发展。
目录
相关文章推荐
InfoQ架构头条  ·  华泰证券:事件驱动型微服务架构的实践与探索 ·  5 天前  
51好读  ›  专栏  ›  高效运维

简单几步小操作,移动网页快上天(一)

高效运维  · 公众号  · 运维  · 2017-05-23 07:14

正文

导语

在这个信息爆炸的时代,使用移动终端获取新鲜信息已经是大势所趋,但是移动网页浏览速度还有巨大的提升空间。据Strangeloop Networks 统计,在同样的网络条件下,使用移动端访问相同网页会平均会比PC端慢40%!

然而另一方面,用户对网速的要求却步步紧逼。Akamai的研究表明,网页响应时间可容忍的阀值是2秒,一旦超过3秒,会有40%的用户放弃浏览页面。简而言之,作为内容服务商的你,可能因为移动网页的加载“太持久”,已经默默的流失了众多客户。

这是一个需要快枪手的时代!如果你不够快,快去搞一把好枪!

那么,我该怎么打磨出一把好枪?


一、借鉴PC端网站优化经验


不论在PC还是在移动浏览器上,只有不到10%的时间是用来读取页面的HTML的。剩下的90%是用来加载额外的像样式表、脚本文件、或者图片这样的资源和执行客户端的程序。因此,许多在PC端的传统网页优化方案在移动端仍然可行。

1.1减少每个页面的 HTTP请求数

I

将共用的JavaScript和CSS代码放在公共的文件夹中与多个页面共享。

II

确保在一个页面中相同的脚本不会被加载多次。同时,将脚本中的Click事件改为On Touch事件来减少固有的300ms延迟。

III

使用CSS Sprites来整合图像,将多张图片整合到一个线性的网状的大图片中。

IV

使用Cache-Control或者Expires标记来实现浏览器缓存,从而减少不必要的服务器请求,尽可能地从本地缓存中获取资源。

1.2减少每个请求加载的大小

I

使用gzip这样的压缩技术来压缩图像和文本,依靠增加服务端压缩和浏览器解压的步骤,来减少资源的负载。

II

整合并压缩CSS与JavaScript,删除不必要的字符与变量。

III

动态地调整图片大小或者将图片替换为移动设备专用的更小的版本。

IV

分段加载和隐藏加载等手段,可以将不可见区域的内容延迟加载或暂时不需要的脚本进行延时读取。

二、采用更优的HTTP2协议


2.1多路复用技术带来的请求-响应加速

I

HTTP2采用多路复用的技术,允许同时通过单一的HTTP2连接发起多重的请求响应消息,从而大大的加快了网页加载时间

2.2更节省空间的二进制头部数据嵌套

I

HTTP2采用二进制格式传输数据,并把他们分割为更小的帧,相比于HTTP/1.x 的文本格式传输更为方便。

II

HTTP1.x的header由于cookie和user agent很容易膨胀,而且每次都要重复发送。HTTP/2 对消息头采用 HPACK 进行压缩传输,能够节省消息头占用的网络的流量。

2.3Server Push带来的更快的资源推送

I

通过Server Push功能,服务端可以主动把 JS 和 CSS 等文件发送给终端,而省区了解析HTML请求的过程。简单的说,当你需要访问某个文件的时候,它已经在乖乖的在后台躺好了。

讲到这儿,卖个关子,我们下周再讲

剩下的干货。


如果您还想了解更多知识,我们邀请您参加我们的技术分享课程,还有超值的购物券赠送哦。

点击“阅读原文”,报名本场活动