减小HTTP请求是上面性能准则中最为显著的一条,咱们能够分为三个主要方面来讨论javascript
CDN是一个拥有不少服务器、通过策略性部署的、能够覆盖全球的网络系统,当用户访问一个比较大的网站时,CDN会从最近的一个节点为用户提供服务。可是动态数据的处理最好放在集中的服务器中,由于跨地域同步数据库是一个令开发者头痛的问题,全部大多数互联网公司都把购买、登录等数据相关的事物放到一个地方处理。另外,CDN服务是很贵的,若是网站的流量值得去付出这么多钱,它无疑会给性能带来提高。css
咱们使用javascript给空的src赋值时,javascript放在文档的最后,此时虽然src是空的仍然会发出一个HTTP请求。当咱们点击一个空的href属性的连接时,一样会发出一个HTTP请求,虽然这个HTTP请求不会有影响加载时间可是会给服务端形成必定的流量浪费。咱们能够建立一个带有描述性信息的很href属性,并阻止此次HTTP请求
<a href="#SometingDescriptive" id="TriggerName">TriggerName</a> <script type="text/javascript"> $("#TriggerName").click(function (e) { e.prventDefaulet(); // 取消默认行为 ... }); </script>
另外,空的src和href也是会产生报错的html
增长了过时头以后浏览器便会缓存这些文件,当用户第二次访问这个网站的时候就不会再像服务端请求这个文件。关于缓存的详细介绍能够点这里java
HTTP协议1.1引入了Accept-Encoding这个功能(代表HTTP请求的内容是压缩过的),GZIP就是其中的一种压缩方式,它是如今压缩比率最高的,据雅虎的统计它减少了大约70%的响应大小。它不只仅会减少文件传输时间,同时也节省了带宽。数据库
浏览器并不会等所有HTML解析完成以后才渲染元素,而是同时进行,把css放到前面就会保证先渲染的那一部分元素的显示样式是正确的,这么写在性能方面也有很大的意义,你毫不但愿引发大量的浏览器重绘。若是你的样式文件放到页面的底部,那么浏览器就会等全部文件都加载完才会绘制页面,那么用户颇有可能盯着白屏一长段时间,浏览器
脚本会阻止并行加载(link支持最大限度的并行加载),也就是说,当浏览器加载一个脚本的时候时,它不会加载其余文件。若是脚本在头部那他会阻止页面的渲染。咱们能够用script标签上的DRFFER属性通知浏览器去异步的加载其余文件,可是这么作会出现两个问题。缓存
关于这个问题能够去我博客园的 博客 来查看。服务器