SlideShare une entreprise Scribd logo
1  sur  40
加快网页打开速度
Make the Web Faster — laotan
自我介绍
猪八戒前端开发
财付通搬过砖,码过码
擅长页面重构,酷爱自动化
积极热情,直言高调
爱好:美(nv),乒乓,LOL
http://laotan.net
加速网页渲染漫谈
网页速度是如何影响转化率的
http://www.qianduan.net/web-page-speed-affect-
conversions.html
Make the Web Faster
目录
 缓存的优化
 减少往返延时
 优化请求数据
 优化服务器返回数据
 优化浏览器渲染
 移动端的优化
Make the Web Faster
客户端缓存
 Expires 和 Cache-Control: max-age
Cache-Control: max-age的值是相对于资源首次被访问的
时间差,单位是秒
Expires指的是资源过期的绝对日期
如果同时存在,Cache-Control: max-age会覆盖掉Expires
Make the Web Faster-缓存的优化-客户端缓存
Response Headers
Cache-Control:max-age=600
Expires:Tue, 12 Mar 2013 15:27:06 GMT
客户端缓存
 Last-Mofidied和Etag
Last-Mofidied和ETag都是用来标示资源的有效性
Last-Mofidied的值是个日期,ETag的值是按照规则生成的
字符串
Make the Web Faster-缓存的优化-客户端缓存
Rquest Headers
If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT
If-None-Match: W/"50b1c1d4f775c61:df3"
Response Headers
Last-Modified: Fri, 12 May 2006 18:53:33 GMT
ETag: "50b1c1d4f775c61:df3"
客户端缓存
http://blog.csdn.net/eroswang/article/details/8302191
客户端缓存
 both HTTP and HTTPS
http和https的资源都可以被缓存
 给所有静态资源设置缓存头
避免不必要重复,Expires和Cache-Control只需二选一,
Last-Mofidied和Etag同理
建议使用Expires& Last-Modified,因为他们更广泛被支持
Expires头的值至少一个月,最好是一年,不要超过一年,因
为这个违反RFC标准
 使用时间戳更新缓存资源
在URL中加入一个get请求参数,如?v=201314
Make the Web Faster-缓存的优化-客户端缓存
客户端缓存
 为IE设置正确的vary头
IE不会缓存,设置了vary头并且其field含有Accept-
Encoding和User-Agent之外其他field的资源。
Vary:Accept-Encoding,User-Agent
 在Firefox中利用Cache control: public 来使HTTPS
的缓存生效
一些版本的Firefox需要在设置了普通缓存头的基础上,设置
Cache-Control:public才能缓存HTTPS的资源。
Make the Web Faster-缓存的优化-客户端缓存
减少往返延时
往返延时(RTT)指从发送端发送数据开始,到发送端收到来自接收端的确
认总共经历的时延。不包括数据下载的时间。
浏览器和服务器的第一次通信至少包含3次往返:DNS查询,TCP的连接,
第一个字节的请求和响应
往返延时不受带宽影响,在一些不需要下载太多数据的场景中,往返延
时是影响页面加载的主要因素,如搜索结果
Make the Web Faster-减少往返延时
减少往返延时
 减少DNS查找
 最小重定向
 避免错误的请求
 合并JavaScript和CSS
 使用CSS sprites
 优化样式和脚本的顺序
 避免document.write
 避免使用CSS的@import
 异步加载脚本
 多域名并行加载
Make the Web Faster-减少往返延时
减少DNS查找
Make the Web Faster-减少往返延时-减少DNS查找
减少DNS查找
 域名尽量不要使用CNAME别名记录
 DNS和并行加载的均衡,1<域名数<6
 使用二级目录代替二级域名
developer.example.com => www.example.com/developer
 页面开始就加载的JS资源建议和页面同域名
Make the Web Faster-减少往返延时-减少DNS查找
减少重定向
 减少不必要的重定向
 使用服务器端重写而不是重定向
 使用服务器端重定向而不是meta或者js跳转
Make the Web Faster-减少往返延时-减少重定向
避免错误的请求
 404之类的资源文件浪费页面请求
 404资源文件可能阻止页面浏览器渲染后续进程
Make the Web Faster-减少往返延时-避免错误的请求
合并JavaScript和CSS
 合并外链js或css资源可以减少请求往返延时
 一个页面外链js或者css的最佳资源数是2-3个
 正确的处理js和css的加载顺序
 一般是发布过程最后才做资源文件合并
Make the Web Faster-减少往返延时-合并JavaScript和CSS
使用CSS sprites
 页面同时引用的图片合并在一起
 优先使用png或者gif雪碧图
 需要缓存的图片才使用雪碧图
 雪碧图中的空白越小越好
 雪碧图色彩数最好和调色板匹配,不要超过256色
Make the Web Faster-减少往返延时-使用CSS sprites
优化样式和脚本的顺序
Make the Web Faster-减少往返延时-优化样式和脚本的顺序
加载顺序A 加载顺序B
 外链js尽可能放在CSS后面
 内联js尽可能的放在外链资源后面
避免document.write
 Document.write会严重影响后续下载和渲染进程
 直接在html标签输出,避免write
 JS异步加载外链资源
Make the Web Faster-减少往返延时-避免document.write
避免使用CSS的@import
 @import无法有效利用浏览器的并发数
 @import的资源需要等页面加载解析完后才会加载
Make the Web Faster-减少往返延时-避免使用CSS的@import
异步加载脚本
 异步加载指浏览器在下载执行 js 同时,还会继续进行
后续页面的处理
Make the Web Faster-减少往返延时-异步加载脚本
<script>
var node = document.createElement('script');
node.type = 'text/javascript';
node.async = true;
node.src = 'example.js';
// Now insert the node into the DOM, perhaps using insertBefore()
</script>
多域名并行加载
 给每个域名均衡的分配资源负荷
因为部分浏览器不支持js并行加载,不要考虑为js分配并行域
名
结合减少dns查找时间,最佳域名个数为2-5
 避免外链js阻塞其他资源的加载
Make the Web Faster-减少往返延时-多域名并行加载
优化请求数据
 使用服务器端存储减小cookie负载
 删除无用或者重复的字段
 使用cookie无关的域名来传输静态内容
Make the Web Faster-优化请求数据
优化服务器返回数据
 启用gzip
 去掉不必要的css
 压缩js、css、html
 延迟加载js
 图像优化
 资源的唯一性
Make the Web Faster-优化服务器返回数据
启用gzip
 优化html和css的书写顺序,并启用gzip
 不要对二进制文件使用gzip
Make the Web Faster-优化服务器返回数据-启用zip
去掉不必要的CSS
 删掉不再使用的样式
 合理把握css文件的颗粒度,避免页面过度引用
 页面非初始加载的样式可以延迟加载
Make the Web Faster-优化服务器返回数据-启用压缩
压缩js、css、html
 Minify指减少无意义的空格、断行、缩进占用的字节
 建议压缩大于4kb的js、css
 Html主要指页面内嵌的js和css
Make the Web Faster-优化服务器返回数据-压缩js、css、html
延迟加载
 延迟加载并不一定减少总下载数据,但可以提升初始
加载的体验
Make the Web Faster-优化服务器返回数据-延迟加载
<script>
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "deferredfunctions.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
图片优化
 选择合适的图像格式
 对图片进行压缩
 不同页面同一张图提供不同尺寸,同一页面提供唯一
尺寸
Make the Web Faster-优化服务器返回数据-图片优化
资源的唯一性
 同一资源使用唯一的url,主要避免
 不同时间戳
 http和https
 同一张图,不同域名
Make the Web Faster-优化服务器返回数据-资源的唯一性
优化浏览器渲染
 使用高效的CSS选择器
 避免CSS表达式和滤镜
 CSS置于页面头部
 指定图片大小
 指定字符集
Make the Web Faster-优化浏览器渲染
使用高效的CSS选择器
 除了顶级,避免使用通用选择器(*)
 使用具体的样式
 去除多余的限制查询
 用样式名代替后代标签选择器,避免过渡嵌套
 IE下,非链接元素不要使用hover伪类
Make the Web Faster-优化浏览器渲染-使用高效的CSS选择器
避免CSS表达式和滤镜
 使用标准的CSS属性
 用js代替表达式
 用图片代替滤镜效果
Make the Web Faster-优化浏览器渲染-避免CSS表达式和滤镜
CSS置于页面头部
 浏览器会等样式下载完成再渲染页面
 外链和内联样式都放head里面
Make the Web Faster-优化浏览器渲染-CSS置于页面头部
指定图片大小
 尽量给图片指定实际展示的大小
 通过设置img标签属性或者CSS属性,抑或设置图片
块级父元素均可,内联或者非直接父级无效
Make the Web Faster-优化浏览器渲染-指定图片大小
指定字符集
 总是指定字符集
 指定正确的字符集
Make the Web Faster-优化浏览器渲染-指定字符集
移动端优化
 http://www.smashingmagazine.com/2013/04/03/
build-fast-loading-mobile-website/
 http://mobile.51cto.com/web-410291.htm
Make the Web Faster-移动端优化
番外篇-工具
 猪八戒改版前后加载速度
 改版前
http://alibench.com/rp/6984ad80bb254525bbd25afbc5c27e54
 改版后
http://alibench.com/rp/3510c66a16de803c656474ae72b65900
验证和测试
参考文献
 Make the web faster
https://developers.google.com/speed/docs/best-
practices/rtt?hl=fr
 浏览器支持一览
http://www.browserscope.org/?category=network&v=top
 异步加载
http://www.cnblogs.com/tiwlin/archive/2011/12/26/2302554.
html
 Best Practices for Speeding Up Your Web Site
http://developer.yahoo.com/performance/rules.html
 Writing Efficient CSS
https://developer.mozilla.org/en-
US/docs/Writing_Efficient_CSS
它山之石可以攻玉
Thanks & QA

Contenu connexe

Tendances

Using CDN to improve performance
Using CDN to improve performanceUsing CDN to improve performance
Using CDN to improve performanceGea-Suan Lin
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨areyouok
 
Apache trafficserver
Apache trafficserverApache trafficserver
Apache trafficserverDin Dindin
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案美团技术团队
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)topgeek
 
大型互联网站性能优化
大型互联网站性能优化大型互联网站性能优化
大型互联网站性能优化丁 宇
 
前端性能测试
前端性能测试前端性能测试
前端性能测试tbmallf2e
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overviewqianshi
 
20111018 zhouchen share
20111018 zhouchen share20111018 zhouchen share
20111018 zhouchen sharezcbug
 
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Robbin Zhao
 
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--黃雋
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--黃雋[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--黃雋
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--黃雋Drupal Taiwan
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践丁 宇
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at TaobaoJoshua Zhu
 
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3redhat9
 
高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用redhat9
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡cachowu
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结redhat9
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocitykumawu
 
Ibm web sphere_portal_v6_安装指南
Ibm web sphere_portal_v6_安装指南Ibm web sphere_portal_v6_安装指南
Ibm web sphere_portal_v6_安装指南mycoolmen1987
 

Tendances (20)

Using CDN to improve performance
Using CDN to improve performanceUsing CDN to improve performance
Using CDN to improve performance
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
Apache trafficserver
Apache trafficserverApache trafficserver
Apache trafficserver
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
大型互联网站性能优化
大型互联网站性能优化大型互联网站性能优化
大型互联网站性能优化
 
前端性能测试
前端性能测试前端性能测试
前端性能测试
 
Traffic server overview
Traffic server overviewTraffic server overview
Traffic server overview
 
20111018 zhouchen share
20111018 zhouchen share20111018 zhouchen share
20111018 zhouchen share
 
Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)Php及drupal性能优化系列(二)
Php及drupal性能优化系列(二)
 
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--黃雋
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--黃雋[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--黃雋
[DCTPE2011] 8) 多伺服器/高效能的Drupal 主機解決方案--黃雋
 
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
 
Hacking Nginx at Taobao
Hacking Nginx at TaobaoHacking Nginx at Taobao
Hacking Nginx at Taobao
 
Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3Bypat博客出品-服务器运维集群方法总结3
Bypat博客出品-服务器运维集群方法总结3
 
高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用
 
使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 
使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity使用Big pipe提升浏览速度 wk_velocity
使用Big pipe提升浏览速度 wk_velocity
 
Ibm web sphere_portal_v6_安装指南
Ibm web sphere_portal_v6_安装指南Ibm web sphere_portal_v6_安装指南
Ibm web sphere_portal_v6_安装指南
 

En vedette

Click Clack Moo Cows That Can Type
Click Clack Moo Cows That Can TypeClick Clack Moo Cows That Can Type
Click Clack Moo Cows That Can TypeMissWhitney
 
ppt on embedded system
ppt on embedded systemppt on embedded system
ppt on embedded systemmanish katara
 
The Bootstrapper's Bible by Seth Godin
The Bootstrapper's Bible by Seth GodinThe Bootstrapper's Bible by Seth Godin
The Bootstrapper's Bible by Seth GodinNicolò Borghi
 
Fmcg training modules-bfg
Fmcg training modules-bfgFmcg training modules-bfg
Fmcg training modules-bfgRomy Cagampan
 

En vedette (6)

Mistakes
MistakesMistakes
Mistakes
 
Click Clack Moo Cows That Can Type
Click Clack Moo Cows That Can TypeClick Clack Moo Cows That Can Type
Click Clack Moo Cows That Can Type
 
An iPod in Your Classroom Toolbox
An iPod in Your Classroom ToolboxAn iPod in Your Classroom Toolbox
An iPod in Your Classroom Toolbox
 
ppt on embedded system
ppt on embedded systemppt on embedded system
ppt on embedded system
 
The Bootstrapper's Bible by Seth Godin
The Bootstrapper's Bible by Seth GodinThe Bootstrapper's Bible by Seth Godin
The Bootstrapper's Bible by Seth Godin
 
Fmcg training modules-bfg
Fmcg training modules-bfgFmcg training modules-bfg
Fmcg training modules-bfg
 

Similaire à Make your web faster

腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨George Ang
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)George Ang
 
高性能网站建设
高性能网站建设高性能网站建设
高性能网站建设feifeipan
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨topgeek
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践self study
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践rewinx
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践Frank Cai
 
Inside the browser
Inside the browserInside the browser
Inside the browserotakustay
 
高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用redhat9
 
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用redhat9
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染Ailsa126
 
前端框架發展
 前端框架發展 前端框架發展
前端框架發展Chi-wen Sun
 
影响搜索引擎排名的因素
影响搜索引擎排名的因素影响搜索引擎排名的因素
影响搜索引擎排名的因素YUCHENG HU
 
缓存技术浅谈
缓存技术浅谈缓存技术浅谈
缓存技术浅谈Robbin Fan
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计notes4mark
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统Frank Xu
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路jeffz
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)Shanda innovation institute
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)Joseph Chiang
 

Similaire à Make your web faster (20)

腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
腾讯大讲堂17 性能优化不是仅局限于后台(qzone)
 
高性能网站建设
高性能网站建设高性能网站建设
高性能网站建设
 
腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨腾讯大讲堂08 可扩展web架构探讨
腾讯大讲堂08 可扩展web架构探讨
 
Paveo Tweak WordPress
Paveo Tweak WordPressPaveo Tweak WordPress
Paveo Tweak WordPress
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践高性能Web服务器Nginx及相关新技术的应用实践
高性能Web服务器Nginx及相关新技术的应用实践
 
Inside the browser
Inside the browserInside the browser
Inside the browser
 
高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用高性能Web服务器nginx及相关新技术的应用
高性能Web服务器nginx及相关新技术的应用
 
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
ByPat博客出品-高性能Web服务器nginx及相关新技术的应用
 
浅析浏览器解析和渲染
浅析浏览器解析和渲染浅析浏览器解析和渲染
浅析浏览器解析和渲染
 
前端框架發展
 前端框架發展 前端框架發展
前端框架發展
 
影响搜索引擎排名的因素
影响搜索引擎排名的因素影响搜索引擎排名的因素
影响搜索引擎排名的因素
 
缓存技术浅谈
缓存技术浅谈缓存技术浅谈
缓存技术浅谈
 
大型网站架构设计
大型网站架构设计大型网站架构设计
大型网站架构设计
 
使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统使用NodeJS构建静态资源管理系统
使用NodeJS构建静态资源管理系统
 
大众点评网的技术变迁之路
大众点评网的技术变迁之路大众点评网的技术变迁之路
大众点评网的技术变迁之路
 
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
[.Net开发交流会][2010.06.19]大众点评网的技术变迁之路(王宏)
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)
 

Make your web faster

Notes de l'éditeur

  1. 针对不重视行为 今天的分享
  2. 很多东西没有为什么,经验 我研究了的,会详细描述
  3. 减少HTTP的请求,减少用户带宽和服务器消耗
  4. 浏览器第一次请求一个URL时,服务器端的返回状态是200,同时有一个Last-Modified或者ETag的属性标记此文件在服务期端的状态 客户端第二次请求此URL时,浏览器会向服务器传送 If-Modified-Since 或者If-None-Match报头,如果文件有效,返回 HTTP 304 (Not Changed.)状态码
  5. 设置Cache-control: public头来使用代理缓存 代理服务器无法缓存HTTPS的资源 不要在静态资源中包含查询字串 不要对设置cookie的资源开启代理缓存
  6. 其实也就是如何优化请求消耗时间
  7. 一些不受限制的请求,例如广告除外 js最好放到页面最后加载
  8. 如果资源改变,修改引用地址而不是重定向 避免多重 重定向
  9. 分成两部分,一、页面加载之前需要引用的 二、页面加载之后才引用的 一些小片段的js或者css不必缓存,建议直接输出在html
  10. 因为png和gif使用的无损压缩,当然图片太大只能用jpg 雪碧图越大对内存的消耗越大,虽然空白不会增加太多雪碧图大小 超过256色,浏览器将用全彩模式解析,消耗很大
  11. 因为脚本可以改变页面结构,所以一个脚本没有下载、解析、渲染之前,这个脚本后续的结构都将不会进行渲染,大部分浏览器甚至会延迟这个脚本后内容的下载 所以为什么建议
  12. 现代浏览器使用比较智能的嗅探式加载
  13. 和最开始讲的 dns lookup 冲突, 方法如上所说合并js,合理的加载顺序
  14. 请求头信息包括哪些? 包括 Cookies ,浏览器默认头,URL携带的数据,来源统计等信息 为什么要优化? 一般用户的上传下载带宽的比例在1:4~1:20之间,所以500Byte的请求时间等效于10kb响应数据的下载时间 请求的数据不能像返回的数据一样被压缩 如果cookie被设置在一个域名的顶级路径下,比如‿”,那么这个域名下所有路径都会继承这个cookie 不携带cookie的域名还可以放心代理缓存
  15. 让相近样式定义之间的书写排序尽可能地一致 html 代码中属性值的书写顺序尽可能地一致 保持一致的字母大小写顺序 使用一致的引号
  16. 小于4kb,收益不大
  17. 优选png 小于10x10,或者颜色值小于3的,建议使用gif 真彩色使用jpg 不要使用bmp
  18. 不推荐ID是从维护角度考虑 不使用 样式+标签的组合,除非这个样式可能用在多个标签
  19. 放在底部的样式会导致页面回流
  20. 如果字符集不正确,浏览器渲染过程中,部分高级浏览器还有一些列的运算去纠正,影响速度
  21. 移动网速、cpu、内存,瓶颈 避免重定向 减少js的使用 多用HTML5+css3的新特性,例如本地存储、svg
  22. 最常用——浏览器开发者工具