今天的鸡汤来自“有书共读”——《你好好说话会死吗?》
是,不是你心情不好,全世界都得陪你哭;不是你心情不好,周围的人都得忍受你的一切。不是你身怀锋芒,手藏匕首,就有资格在难过的时候,刺向你最熟悉的人,杀向所有的陌生人。
Yahoo军规重要的几点也是常用的几点来个总结:
减少HTTP请求(减轻服务器压力)
图片合并
JS合并
CSS合并
使用CDN(内容分发网络)(需要花钱买副本服务器)
定义:尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
通俗理解:在离你最近的地方,放置一台性能好链接顺畅的副本服务器,你能够以最近的距离,最快的速度获取内容
添加Expire/Cache-Control头
expire头的内容是一个时间值,值就是本地资源在本地的过期时间、存在本地、在本地缓存阶段,找到一个对应的过期时间,就直接使用这个资源,不会请求http请求。
Cache-Control头是http协议中常用的头部之一,顾名思义,他是负责控制页面的缓存机制,如果该头部指示缓存,缓存内容也不会存在本地,操作流程和expire相似,cache-control会有更多的选项,而且会有更多的处理方式。
启用Gzip压缩(这地球人都知道)
将css放在页面最上面
浏览器解析html是从上往下解析,如果把css放到下面会出现空白->先出现HTML,再出来CSS。想想都丑。
将script放在页面最下面(基本上所有的公司都用了这种方法)
dom加载顺序和css一样的问题,但是js不需要提前显示。所以要放到DOM加载完成的时候。
避免在css中使用Expressions
css表达式 页面显示和缩放、页面滚动、鼠标移动的时候都要重新计算一次。巨耗性能。
减少DNS查询
这个有一个峰值,和之前测试HTML中的Worker时一样。多域名不能太多。
最小化JS和css (压缩)
这个没得说webpack plugin就有的东西,拿出来打包就可以。
避免重定向
301->移动永久重定向
302->找到了不在这个位置 临时重定向
但是无论是哪种重定向都是请求了2次 2次DNS查询=>减少DNS查询
配置ETag
get请求可以被代理缓存,而post的不可以。但是办法不是没有!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。