Web 前端性能优化(浏览器访问优化)

1. 减少http请求

  HTTP协议是无状态的应用层协议,意味着每次HTTP请求都需要建立通信链路、进行数据传输,而在服务器端,每个HTTP都需要启动独立的线程去处理。这些通信和服务的开销痘痕昂贵,减少HTTP请求的数目有效提高访问性能。

  加少HTTP的主要手段是合并CSS、合并JavaScript、合并图片。将浏览器一次访问需要的JavaScript、CSS合并成一个文件,这样浏览器就只需要一次请求。图片也可以合并,多张图片合并成一张,如果每张图片都有不同的超链接,可通过CSS偏移响应鼠标点击操作,构成不同的URL。

2. 使用浏览器缓存

  对一个网站而言,CSS、JavaScript、Logo、图标这些静态资源文件更新的频率都比较低,而这些文件又几乎是每次HTTP请求都需要的,如果将这些文件缓存在浏览器中,可以极好的改善性能。通过设置HTTP头中的Cache-Control和Expires的属性,可设定浏览器缓存,缓存时间可以是几天,甚至几个月。

  在某些时候,静态资源文件变化需要及时应用到客户端浏览器,这种情况,可通过改变文件名实现,即更新JavaScript文件并不是更新JavaScript文件内容,二十生成一个新的JS文件并更新HTML文件中的引用。

  使用浏览器缓存策略的网站在更新静态资源时,应采用批量更新的方法,比如需要更新10个图标文件,不宜吧10个文件一次全部更新,而是一个文件一个文件进行更新,且有一定的间隔时间,以免用户浏览器突然大量缓存失效,集中更新缓存,造成服务器负载骤增、网络堵塞的情况。

3. 启用压缩

  在服务器端对文件进行压缩,在浏览器端对文件进行压缩,可有效减少通信传输的数据量。文本文件的压缩效率可达80%以上,因此HTML、CSS、JavaScript文件启用GZip压缩可达到较好的效果。但是压缩对服务器和浏览器产生一定的压力,在通信带宽良好,而服务器资源不足的情况下要权衡考虑。

4. CSS放在页面最上面、JavaScript放在页面的最下面

  浏览器会在下载完全部CSS之后才对整个页面进行渲染,因此最好的做法时将CSS放在页面的最上面,让浏览器尽快下载CSS。JavaScript则相反,浏览器在加载JavaScript后立即执行,有可能会阻塞整个页面,造成页面显示缓慢,因此JavaScript最好放在页面最下面。如果页面解析式就需要用到JavaScript,这是放在底部就不合适了。

5. 减少cookie传输

  一方面,Cookie包含每次请求和响应中,太大的Cookie会严重影响数据传输,因此哪些数据需要写入Cookie需要慎重考虑,尽量减少Cookie中传输的数据量。另一方面,对某些静态资源的访问,入CSS、Script等,发送Cookie没有意义,可以考虑静态资源使用独立域名访问,避免请求静态资源时发送Cookie,减少Cookie传输次数。

原文地址:https://www.cnblogs.com/yhc-love-cl/p/14075178.html