有关网页性能方面的优化

2017-12-26  本文已影响0人  追风的云月

最近读了一本高性能网站建设指南,获益颇多,于是做一个本书的读书笔记和总结。

减少HTTP请求

使用CDN--内容发布网络

利用缓存:做好图片、脚本、和样式表的缓存

有关缓存,我写了一篇比较完整的文章介绍谈谈缓存

压缩组件:JS和CSS

在我使用webpack的过程中,每次打包代码,都会用专门的插件对脚本和样式表还有图片进行压缩,这显著减少了要下载的文件的大小,提高下载速度

将CSS放于head中:避免无样式内容闪烁

如果样式表放于文档底部,页面逐步加载的时候,文字和图片依次显示,最后样式表下载解析后,会对已经呈现的文字和图表进行样式绘制,导致页面闪烁。

脚本的正确放置位置

如果是JSONP之类的请求,需要动态创建script标签添加至body中执行,因为跨域ajax数据请求有可能耗时较长,如果也以静态形式放于页面中,会影响页面加载速度。

做好Ajax缓存

当使用ajax获取到一个比较大并且可以共用的数据时,可以用一个变量将其缓存在本地,便于重复使用。

DNS预解析

DNS解析就是将主机名和域名转换为IP地址这么一个过程,而DNS预解析概念如下:

DNS 作为互联网的基础协议,其解析的速度似乎很容易被网站优化人员忽视。现在大多数新浏览器已经针对DNS解析进行了优化,典型的一次DNS解析需要耗费 20-120 毫秒,减少DNS解析时间和次数是个很好的优化方式。DNS Prefetching 是让具有此属性的域名不需要用户点击链接就在后台解析,而域名解析和内容载入是串行的网络操作,所以这个方式能 减少用户的等待时间,提升用户体验 。

DNS Prefetch 应该尽量的放在网页的前面,推荐放在 <meta charset="UTF-8"> 后面。
如果页面是HTTPS,那么很多浏览器是默认关闭DNS预解析,此时如果要强制打开预解析,可以加上<meta http-equiv="x-dns-prefetch-control" content="on">

题外话:从输入网址到显示网页的全过程

1.用户输入网址
2.DNS查找 获取域名对应的IP地址
3.浏览器向web服务器发送GET请求
4.服务器处理请求,返回一个响应
5.浏览器获取响应进行解析和展示

上一篇下一篇

猜你喜欢

热点阅读