Open oliver1204 opened 7 years ago
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="style.css" rel="stylesheet">
<title>Critical Path: Script Async</title>
</head>
<body>
<p>Hello <span>web performance</span> students!</p>
<div><img src="awesome-photo.jpg"></div>
<script src="app.js" async></script>
</body>
</html>
1. 减少HTTP请求
<img src="data: image/gif;base64,B01GOD1HFUAIDHF;AOHF;ADH;FDF;ADHF;DOIFHOAI;AIF;ADIFOAD;IF;AD=">
2. 使用内容发布网络(CDN)-- Content Delivery Network
如果应用程序
Web
服务器离用户很近,则一个HTTP请求所花费的时间将缩短(最早,很多网站都会提供电信 / 网通等不同二级域名,供不同运营商用户选择,这无疑增加了使用成本。当前,一般网站都使用 DNS 服务来解决这个问题:按地域、运营商等条件,将用户 DNS 请求解析到最合适的 IP),如果组件Web
服务器离用户很近,则多个HTTP请求响应时间将会缩短。而且增加组件Web
服务器相对于增加应用程序Web
服务器而言简单很多,因此CDN非常的实用。 CDN是一组分布在不同地理位置的Web
服务器,用于有效的向用户发布内容。 优势:Web
服务器,所以响应时间受其他网站的影响。3. 压缩
Web
客户端通过Accept-Encoding: gzip deflate
头来表示其支持压缩,服务器端从中选择一种压缩方式,通过Content-Encoding
告诉客户端。最通用的压缩方式是gzip格式。压缩通常是压缩脚本和样式表,甚至是HTML和JSON ,对用图片和 PDF 一般不会压缩。因为不必要的压缩会给服务器端带来额外的CPU消耗,客户端也需要消耗资源来解压缩。
Web
服务器的响应头中添加Vary
头。Web
服务器告诉代理根据一个或多个请求头来改变缓存的响应。服务器的Vary
头中包含Accept-Encoding
,这将使得服务器端的响应有多种选择,即:4. 减少DNS的查询
首先介绍两篇关于 DNS 的文章,感觉写的好棒! http://www.ruanyifeng.com/blog/2016/06/dns.html https://imququ.com/post/http-alt-svc.html
请求支持keep-alive特性,同时可以覆盖TTL(time-to-live)和浏览器的时间限制。换句话说,质押浏览器的服务器可以愉快的聊天,就没有必要去查询DNS。
5. 图片多的页面使用
webP
1、https://segmentfault.com/a/1190000005898538 2、http://isux.tencent.com/introduction-of-webp.html 使用时,检测浏览器是否支持 webp 即可
6. 避免重定向