Yahoo的Yslow23条规则
一. CONTENT
- 减少使用HTTP请求(Minimize HTTP Requests)
通常打开一个页面的时候,大部分的时间都是在下载该页面的图片,css样式,js脚本,flash等等资源,减少这些资源的组件数,能够减少http请求,所以可以导致页面的访问速度变快. - 减少DNS查找(Reduce DNS Lookups)
通常在访问一个页面的时候,都是通过属于页面的主机名来访问,但是实际上访问页面是要访问对应的IP地址的,所以在访问域名到查找对应的IP地址的时候,会先通过DNS域名系统,将对应的IP地址找到并返回浏览器,而DNS本身也有时间成本,所以减少DNS查找,直接访问IP地址的话,可以提高访问速度. - 避免URL重定向(Avoid Redirects)
如果在页面HTML里面有重定向的URL的话,在下载HTML文档的时候,会先跳转到重定向的地址,将重定向地址的内容下载后再返回到原页面的HTML下载,那这时候就会存在延迟,使得排在重定向URL后面的一些内容无法下载,造成打开页面慢. - 使用AJAX缓存(Make AJAX Cacheable)
使用AJAX的好处在于它是从后端web服务器异步请求信息的,就是对于一些不需要立刻展示的资源先不下载到本地,等用户请求的时候再下载,就会减少下载资源过多导致的通道堵塞.优化AJAX响应对提高性能也非常重要,同时也可以优化将响应形成可缓存,不需要每次都是从后端下载资源. - 减少DOM元素的数量(Reduce the Number of DOM Elements)
访问页面的时候要下载资源,越复杂的页面下载的字节就会越多,那么对于JavaScript中DOM访问速度就会更慢,那么减少页面上DOM元素数可以提高页面的性能. - 避免HTTP 404错误(No 404s)
下载页面资源的时候,对于一些资源访问时404的话,就有可能会导致服务器多次的访问这类资源,使得其他资源在等待服务器下载,那么就有可能会导致页面访问速度变慢,所以下载页面资源的时候要避免产生HTTP 404找不到资源的情况.
二. COOKIE
- 减少cookie大小(Reduce Cookie Size) HTTP cookie主要是用户身份认证,个性化设置等用户,通常情况下是会自动的在请求后端的时候也把cookie发送到后端,所以如果cookie越大的话,发送到后端的数据就越多,就会使得响应时间可能变慢的情况,所以相应的减少cookie大小,能够提高响应时间.
- 使用无cookie域(Use Cookie-Free Domains for Components)
当浏览器向服务端发送请求的时候通过会自动的发送cookie到服务端,当时如果只是请求一些静态资源的时候,不需要发送cookie来请求,可以通过创建子域并将其驻留在那里,确保使用无cookie请求青苔组件来减少请求时间.
三. CSS
- 将CSS放在顶部(Put StyleSheets at the Top)
访问页面的时候,下载页面资源是从上到下下载并且渲染的,将CSS等样式放在顶部的话,可以首先先下载CSS资源进行逐步渲染,以免其他资源都渲染成功了,然后页面没样式显示. - 避免CSS表达式(Avoid CSS Expressions)
CSS表达式的问题在于比预期的计算要频繁,不仅在页面载入和调整大小时要重新计算,在滚动页面或者在页面移动鼠标的时候也要计算,所以避免CSS表达式计算太多次,可以减少页面渲染CSS的时间, - 避免使用过滤器(Avoid Filters)
IE专有的过滤器用户修复IE7一下版本的半透明真彩色PNG的问题,但是它阻止了渲染,并在图片下载时冻结了浏览器,并且还会引起内存消耗,所以避免使用过滤器会能够使得页面正常的渲染,能够有效访问页面.
四. SERVER
使用CDN(Use a Content Delivery Network) (重要的)
前端页面花费的响应时间大部分是在下载图片,样式,脚本,flash等,如果将这些内容都放在同一个服务器上面,那么在下载资源的时候,其他资源就要排队等待,所以就会造成响应时间加长,如果将这些资源分布到不同的服务器上面,那么在下载的时候就可以减少等待的时间,即减少响应时间,而CDN是一群不同地点的服务器,可以更高效地分发内容到用户,所以使用CDN可以有效的减少响应时间,获得更好的页面体验效果.
加Expires或Cache-Control头部(Add an Expires or a Cache-Control Header)
页面越复杂的时候,包含的样式,脚本等资源会越多,那么在第一次瞎子的时候可能会发送多个请求,但是再之后重新访问这个页面的时候,就可以使用Expires将这些组件缓存起来,后续直接读取缓存,避免重复的访问服务器下载同样的资源,可以减少http请求数,加快页面加载速度,Cache-Control也是同样的效果.- 传输使用gzip等压缩组件(Gzip Components)
服务器在响应浏览器的请求时候,浏览器从服务器下载前端的资源,如果这些资源首先经过压缩之后再下载,那么就能减少传输时资源的大小,就能减少下载的时间,所以在发送请求到服务器的时候,在http请求的头部加上Accept-Encoding,表示支持压缩,那么服务器看到这个头部,就会将资源压缩后,并且在响应中返回Content-Encoding:gzip表明内容是压缩过的.会大大减少响应时间. - 配置ETags(Configure ETags)
实体标记是服务器和浏览器之间判断浏览器缓存中某个组件是否匹配服务器端原组件的一种机制,实体就是组件:图片,脚本,样式等,ETag被当成验证实体的比最后更改日期更有效的机制.浏览器要验证组件是否有更新,当组件没有更新的时候,通过ETag匹配,服务器返回304没有修改的时候,那么就可以从缓存中直接下载资源减少响应时间. - AJAX请求用get(Use GET for AJAX Requests)
XMLHttpRequest在POST请求的时候浏览器会分成两步:首先发送头部,然后发送数据.所以用GET请求,只用一个TCP来发送到服务器,所以如果不是提交数据到服务器的话,就用GET来请求,提交数据到服务器就用POST请求. - 避免空src或href的图片(Avoid empty src or href)
页面中含有空src属性的图片的时候,浏览器会想服务器发送请求,这回导致发送大量意外之外的流量,会削弱服务器.同时也会浪费服务器计算周期取生成不会被浏览的页面,也会有可能破坏用户数据.这种行为的根源是由于url解析发生在浏览器,RFC 3986定义了这种行为,空字符串被当作相对路径来正确解析,所以会导致有不必要的流量产生.
五. JAVASCRIPT
- 将脚本放到底部(Put Scripts at the Bottom)
在下载组件的时候可能会阻塞了并行下载,如果图片,脚本等资源分散在不同服务器,那么可以并行下载多个图片,但当脚本在下载,浏览器不会再下载其他组件,即使在不同于域名下,所以将脚本放到底部可以减少阻塞.提高下载效率. - 使用外部JS和CSS(Make JavaScript and CSS External)
一般情况下,使用外部文件会加快页面,因为JS和CSS文件会被浏览器缓存,如果是内连的JS和CSS的话每次HTML文档下载的时候都被下载.对多个页面的首页来说,可以通过技术减少http请求.在首页用内连,初始化后动态加载外部文件,接下来的页面如果可以用到这些文件,就可以使用缓存了,减少http文档的大小. - 压缩JS和CSS(Minify JavaScript and CSS)
压缩就是删除代码中不必要的字符来减少文件的大小,提高下载的速度,所以使用压缩JS和CSS,页面在下载的时候就会比原文件下载的少,访问速度回加快. - 删除重复的脚本(Remove Duplicate Scripts)
同一个页面中如果有重复的脚本,会发出不必要的http请求和浪费js执行时间,所以页面中将重复的脚本删除,在执行http请求时,就不会多次执行童谣的脚本,就会减少时间的浪费.
六. IMAGES
- 不要在html中缩放图片(Do Not Scale Images in HTML)
不要在图片中设置宽高来用比需要大很多的图片,如果需要就直接从服务器中请求,或者就用需要图片自身的宽高.避免在请求的时候以大于需要的图片来请求,影响下载资源的大小. - favicon.ico小且缓存(Make favicon.ico Small and Cacheable)
favicon.ico是服务器根路径的图片,即使本身不想请求它,浏览器仍然会请求它,所以根据之前的规则,最好就是在请求它的时候不要响应404,还有就是每次请求favicon.ico都会带上cookie,并且它也会影响下载顺序,可以通过设置Expires头部,使得每次都是直接从缓存中读取,不必要每次都是请求.
Yahoo的Yslow23条规则的更多相关文章
- Yslow-23条规则
1. 减少HTTP请求次数 合并图片.CSS.JS,减少首次访问用户等待时间. 2. 使用CDN就近缓存==>智能路由==>负载均衡==>WSA全站动态加速 3. 避免空的src和h ...
- Yslow-23条规则编辑
1. 减少HTTP请求次数 合并图片.CSS.JS,改进首次访问用户等待时间. 2. 使用CDN 就近缓存==>智能路由==>负载均衡==>WSA全站动态加速 3. 避免空的 ...
- Yahoo网站性能优化的34条规则
摘自:http://blog.chinaunix.net/uid/20714478/cid-74195-list-1.html Yahoo网站性能优化的34条规则 1.尽量减少HTTP请求次数 终端用 ...
- yahoo的30条优化规则
1.尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容.这部分时间包括下载页面中的图像.样式表.脚本.Flash等.通过减少页面中的元素可以减少HTTP请求的次数.这是提高网页速 ...
- web前端性能14条规则
14条规则 1.减少Http请求 使用图片地图 使用CSS Sprites 合并JS和CSS文件 这个是由于浏览器对同一个host有并行下载的限制,http请求越多,总体下载速度越慢 2.使用CDN( ...
- web前端-雅虎34条规则优化
1.尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容.这部分时间包括下载页面中的图像.样式表.脚本.Flash等.通过减少页面中的元素可以减少HTTP请求的次数.这是 ...
- Yslow-23条军规
YslowYahoo发布的一款基于FireFox的插件,主要是为了提高网页性能而设计的,下面是它提倡了23条规则,还是很不错的,分享一下: 1.减少HTTP请求次数 合并图片.CSS.JS,改进首次访 ...
- 关于Yahoo十四条军规与前端性能优化
关于Yahoo十四条军规与前端性能优化 热度 4已有 223 次阅读2014-8-3 15:01 |个人分类:前端相关|系统分类:前端优化| 前端优化, yahoo, 性能优化 启用Gzip压缩.Gz ...
- Yahoo! 35条网站性能优化建议
Yahoo! 35条网站性能优化建议 Yahoo!的 Exceptional Performance团队为改善 Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客 ...
随机推荐
- dubbo注册服务和消费服务---入门篇
本文介绍如何用dubbo+zk来实现一个注册服务 + 消费服务的入门小demo 需要环境:zk服务器 两个maven项目,一个负责提供服务,一个负责消费服务. dubbo-service 服务端 po ...
- Lucene Query In Kibana
1. Terms 一个查询由词条与操作组成.词条可以是单词,或者短语. hello #单独项 "hello pzdn" #双引号引起来短语 2. Field Lucene 支持字段 ...
- vue.js初始学习笔记&vue-cli
笔记一下: vue.js 安装,参考: http://www.cnblogs.com/wisewrong/p/6255817.html (vue-cli) http://www.cnblogs.com ...
- FCN 32分析:
FCN 32s
- 日历控件QCalendarWidget
样式:
- Mac下配置多个SSH KEY访问远程Git服务
第一步 生成对应的ssh key 1 后面输入你的用户名 或者 邮箱 2 输入一个独立的ssh key名字 区别之前的名字 第二步 编辑 config文件 在.ssh/目录下面 在config文件配 ...
- python作业简单FTP(第七周)
作业需求: 1. 用户登陆 2. 上传/下载文件 3. 不同用户家目录不同 4. 查看当前目录下文件 5. 充分使用面向对象知识 思路分析: 1.用户登陆保存文件对比用户名密码. 2.上传用json序 ...
- MYSQL和oracle 大小写问题
MySQL的大小写问题 不是一个很大的问题,但是如果不了解的话,却会使用户产生迷惑 :如下面 Sql代码insert into t values('A'); insert into t values( ...
- 改环境变量改出问题了,vi,ls这些命令都不能用了,怎么办
1.出现这个问题肯定是以前的基本环境变量都用不了了(大部分情况就是多了一个空格) 解决办法: cd /usr/bin 下执行vi命令 修改环境变量 然后source /etc/profile ...
- 生成eps图形
(1) matlab可直接将生成图片保存为eps格式. print -fhandle -rresolution -dfileformat filename 例子:set(gcf,'paperposit ...