1.使用CDN

  内容分发服务器会根据用户的位置选择最近的服务器响应用户的请求,静态资源放在CDN的性能将提升20%左右。

2.设置Expires和Cache-Contral头

  将静态资源的过期时间设置一个遥远的日期,那么这将是304请求

  将动态资源设置一个Cache-Contral来帮助浏览器有条件的请求

  这个时候我们的静态资源就要带上版本号了,以便于更新的时候可以获取到最新的代码

3.配置ETags

  a) 客户端请求一个页面Page A

  b)服务器返回Page A 连同ETags一起

  c)客户端接收到Page A 并且缓存Etags

  d)客户端再次请求Page A ,带上了缓存中的ETags一起发往服务器

  e)服务器收到请求,发现Etags并未改变。直接返回响应304(未修改——Not Modified)和一个空的响应体。

4.使用get来响应Ajax请求

  因为post请求是分成2次的。第一次会先发送请求头,第二次才发送数据。而get只需要发送一个数据包,但是限制在20K内。

5.尽量减少HTTP请求

  合并CSS JS Image,使用CSS的background-position去定位图片。

  如果一个CSS或者JS是通用模块,我认为也可以不需要合并,因为多次访问同一个资源是304

  但是对于第一次访问web的用户,合并是最好的

6.减少NDS解析

  因为DNS解析需要20-120ms,而在这期间浏览器是等待状态的。

  但是考虑到并行下载需要多个域名,建议控制在4个以内。

7.避免重定向

  重定向会导致用户访问的时间增加

  一个经常发生的场景就是'/',例如我们访问http://astrology.yahoo.com/astrology被301到

  http://astrology.yahoo.com/astrology 。所以我们要是第一次就带上'/',那么就避免了这次重定向。

8.减少DOM元素的数量

  过于复杂的DOM结构以为访问者下载更多的数据,javascript访问DOM的速度本身是很慢的,然而随着DOM数量的增加这会更加糟糕。

9.避免404错误

  HTTP请求的代价是非常昂贵的,404会终止我们的并行下载,如果是js发生了404,浏览器还会试图从404的结果中找到js的内容。

10.把CSS放在页面顶部

  雅虎的研究表明把CSS放在head里面可以加快页面的渲染,因为允许了浏览器获取到DMO就逐步渲染。浏览器为了避免重绘页面,

  需要等待把CSS加载完后才知道如果渲染。如果你把他们放在底部了,那么将会因为没有施工图纸而无法开工。

11.避免使用CSS表达式

12.避免使用@import来引入CSS

13.把JS放在页面的底部

  HTTP/1.1规范建议同一域名下并行下载的资源数量不应该超过2个,如果图片存于不同的域名下面,那么不受此限制。js在下载的时候

会中断其他资源的下载即使是其他域名下面的。所以让js最后加载会使得页面加载等更流畅。

14.使用外链的JavaScript和CSS

  因为外链的JavaScript和CSS可以更好的被浏览器缓存,特别是多页面的共同引用某个JS或者CSS时。虽然这增加了HTTP请求的数量,

但是对于后面的访问来说则不然了。

15.压缩JavaScript和CSS

  压缩JS和CSS可以提高下载的速度,使文件变得更加苗条了。

16.减少DOM操作

  因为JS访问DOM天生就慢,所以应该采取相应的措施:

    a)缓存已经访问过的节点

    b)'离线'操作DOM,完成以后再一次性添加到对应的DOM

    c)避免使用JS来布局页面

17.使用智能事件

  如果你有10个按钮在div.btns里面,你把事件绑定到button上面,将会有10个监听器。而如果使用代理给div.btns那么只需要一个监听器。

18.优化图片

  目前我在使用Grunt的插件来优化我们的图片,优化以后的图片尺寸明显小了很多。

19.不要在HTML中缩放图像

  比如你的图片是100px * 100px 的,那么img标签里面的尺寸应该是 100px * 100px.如果需要自适应的话是否应该考虑CSS3呢?

20.移动端

  a)不要使用大于25KB的组件(这里是指未压缩的尺寸),iphone不会缓存大于这个数字的组件。

yahoo给出的关于网站优化的建议的更多相关文章

  1. Java Web 高性能开发,第 3 部分: 网站优化实战

    这个系列的前两篇,介绍了前端的优化技术,这些技术秉承了前人至高无上的智慧,我只是负责吸收和传播.然而,这些技术一般也都是某某大型网站的技术经验,我们大部分人或许只能接触到相对小规模的网站,小规模的网站 ...

  2. web网站优化

    没事儿研究一下YAHOO工程师对网站优化给出的策略,对重点部分在这儿做下笔记 -----------------------------------------------我是分割线--------- ...

  3. ASP.NET网站优化(转自一位博友的文章,写的非常好)

    不修改代码就能优化ASP.NET网站性能的一些方法 阅读目录 开始 配置OutputCache 启用内容过期 解决资源文件升级问题 启用压缩 删除无用的HttpModule 其它优化选项 本文将介绍一 ...

  4. 【IIS】 网站优化

    [IIS] 网站优化 一. 从硬件入手,升级服务器的cpu,内存,硬盘 这是成本最低的方法,所以如果要优化,请先考虑下现有服务器的硬件能力是不是满足要求. 二. 从数据库入手 索引: 检查该建的索引建 ...

  5. 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)

    在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”, ...

  6. 怎么通过网站优化来增强SEO效果?

    真正好的网站优化不应该针对哪一个搜索引擎,而应该关注用户的需求.搜索引擎把这这用户指标权重提升,实际上也是希望把更多的精力集中在用户体验的提升上面.那么,这些用户指标应该怎样提升呢?方法多种多样,下面 ...

  7. 网站优化不等于搜索引擎优化SEO

    对于SEO相信搞网络营销的人基本上都知道这个名词,英文全称为search engine optimization,中文一般叫搜索引擎优化,也有的叫搜索引擎定位(Search Engine Positi ...

  8. 网站优化(SEO)的10大误区

    前段时间大前端也有关于SEO的文章贡献给广大读者,今日,再发一文,网站优化(SEO)的10大误区.很多新手站长初次接触SEO,感受到SEO 的无穷魅力,想要做一位优秀的SEOer,然而新手朋友在进行S ...

  9. Asp.net网站优化【转】

    阅读目录 开始 配置OutputCache 启用内容过期 解决资源文件升级问题 启用压缩 删除无用的HttpModule 其它优化选项 本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不 ...

随机推荐

  1. JS左侧菜单-02

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> <html xmlns=" ...

  2. QQ空间如何显示相片

    QQ空间如何显示相片 前言 此篇文章估计不会太长,有移除首页的风险,但是老夫(称老夫是因为我们真正的叶小钗其实都100多岁啦)是不会怕滴.所以,我来了哟! 题外话:今天我们一起还看了一道前端的面试题, ...

  3. 让C#、VB.NET实现复杂的二进制操作

    VB.NET和C#属于高级语言,对二进制位操作的支持不是很好,比如没有了移位运算等,用的时候确实很不方便,所以在闲暇之余我重新封装了一个用于C#.VB.NET的位操作类库,通过该类库可以实现数据移位. ...

  4. Haskell 笔记(三)类型系统

    类型 (Type) Haskell的类型系统式静态类型系统,在编译的时候就知道数据类型,所以不同类型的值运算在编译的时候就会报错,比如用布尔值和整数运算,在C语言中这种运算就不会报错. Haskell ...

  5. POJ 1915 经典马步 双向bfs

    拿这个经典题目开刀...........可是双向时间优势在这题上的效果不太明显 #include <iostream> #include <algorithm> #includ ...

  6. 捕鱼达人代码例子下载地址 mac版

    捕鱼达人代码例子下载地址  mac版: http://pan.baidu.com/share/link?shareid=1431898404&uk=3189484501

  7. [APUE]进程控制(中)

    一.wait和waitpid函数 当一个进程正常或异常终止时会向父进程发送SIGCHLD信号.对于这种信号系统默认会忽略.调用wait/waidpid的进程可能会: 阻塞(如果其子进程都还在运行); ...

  8. 部署 instance 到 OVS vlan100 - 每天5分钟玩转 OpenStack(138)

    上一节创建了 OVS vlan network vlan100,今天部署 instance 到该网络.launch 新的 instance “cirros-vm1”,网络选择 vlan100. cir ...

  9. iOS之上架打包时报错:ERROR ITMS-90086: "Missing 64-bit support.

    根据错误信息在网上基本找到的解决方法是设置targets中build settings中的architectures中的内容 这是因为现在提交的app必须支持64位.  

  10. (八)python的简单数据类型和变量

    什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种. 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示 名字:德玛西亚------ ...