设为首页收藏本站

就爱编程论坛

 找回密码
 注册

人人连接登陆

无需注册,直接登录

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

查看: 443|回复: 4
打印 上一主题 下一主题

要提高网站性能,可以看雅虎34条 [复制链接]

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    无聊
    2025-5-27 03:37:20
  • 签到天数: 366 天

    [LV.9]以坛为家II

    论坛先锋 学习至圣 荣誉成员 论坛元老 活跃之星 终极领袖

    我玩的应用:

    跳转到指定楼层
    楼主
    发表于 2011-4-21 06:05:34 |只看该作者 |倒序浏览
    雅虎团队经验:网站页面性能优化的34条黄金守则
    1、尽量减少HTTP请求次数
    2、减少DNS查找次数  
    域名系统(DNS)提供了域名和IP的对应关系,就像电话本中人名和他们的电话号码的关系一样。当你在浏览器地址栏中输入www.rjboy.cn时,DNS解析服务器就会返回这个域名对应的IP地址。DNS解析的过程同样也是需要时间的。一般情况下返回给定域名对应的IP地址会花费20到120毫秒的时间。而且在这个过程中浏览器什么都不会做直到DNS查找完毕。
    3、避免跳转  
    要记住跳转会降低用户体验。在用户和HTML文档中间增加一个跳转,会拖延页面中所有元素的显示,因为在HTML文件被加载前任何文件(图像、Flash等)都不会被下载。
    4、可缓存的AJAX  
    5、推迟加载内容
    你可以仔细看一下你的网页,问问自己“哪些内容是页面呈现时所必需首先加载的?哪些内容和结构可以稍后再加载?
    把整个过程按照onload事件分隔成两部分,JavaScript是一个理想的选择。例如,如果你有用于实现拖放和动画的JavaScript,那么它 就以等待稍后加载,因为页面上的拖放元素是在初始化呈现之后才发生的。其它的例如隐藏部分的内容(用户操作之后才显现的内容)和处于折叠部分的图像也可以 推迟加载。
    6、预加载  
    预加载和后加载看起来似乎恰恰相反,但实际上预加载是为了实现另外一种目标。预加载是在浏览器空闲时请求将来可能会用到的页面内容(如图像、样式表和脚本)。使用这种方法,当用户要访问下一个页面时,页面中的内容大部分已经加载到缓存中了,因此可以大大改善访问速度。
    7、减少DOM元素数量
    一个复杂的页面意味着需要下载更多数据,同时也意味着JavaScript遍历DOM的效率越慢。比如当你增加一个事件句柄时在500和5000个DOM元素中循环效果肯定是不一样的。
    8、根据域名划分页面内容
    把页面内容划分成若干部分可以使你最大限度地实现平行下载。由于DNS查找带来的影响你首先要确保你使用的域名数量在2个到4个之间。例如,你可以把用到的HTML内容和动态内容放在www.example.org上,而把页面各种组件(图片、脚本、CSS)分别存放在statics1.example.org和statics.example.org上。
    9、使iframe的数量最小
    <iframe>优点:解决加载缓慢的第三方内容如图标和广告等的加载问题 ;Security sandbox ;并行加载脚本 。
    <iframe>的缺点:即时内容为空,加载也需要时间;会阻止页面加载 ;没有语意 。
    10、不要出现404错误
    11、使用内容分发网络
    用户与你网站服务器的接近程度会影响响应时间的长短。把你的网站内容分散到多个、处于不同地域位置的服务器上可以加快下载速度。
    12、为文件头指定Expires或Cache-Control
    这条守则包括两方面的内容:
    对于静态内容:设置文件头过期时间Expires的值为“Never expire”(永不过期)
    对于动态内容:使用恰当的Cache-Control文件头来帮助浏览器进行有条件的请求
    13、Gzip压缩文件内容
    Gzip压缩所有可能的文件类型是减少文件体积增加用户体验的简单方法。
    14、配置ETag  
    Entity tags(ETags)(实体标签)是web服务器和浏览器用于判断浏览器缓存中的内容和服务器中的原始内容是否匹配的一种机制(“实体”就是所说的“内 容”,包括图片、脚本、样式表等)。增加ETag为实体的验证提供了一个比使用“last-modified date(上次编辑时间)”更加灵活的机制。Etag是一个识别内容版本号的唯一字符串。唯一的格式限制就是它必须包含在双引号内。原始服务器通过含有 ETag文件头的响应指定页面内容的ETag。
    15、尽早刷新输出缓冲
    当用户请求一个页面时,无论如何都会花费200到500毫秒用于后台组织HTML文件。在这期间,浏览器会一直空闲等待数据返回。在PHP中,你可以使用 flush()方法,它允许你把已经编译的好的部分HTML响应文件先发送给浏览器,这时浏览器就会可以下载文件中的内容(脚本等)而后台同时处理剩余的 HTML页面。这样做的效果会在后台烦恼或者前台较空闲时更加明显。
    输出缓冲应用最好的一个地方就是紧跟在<head />之后,因为HTML的头部分容易生成而且头部往往包含CSS和JavaScript文件,这样浏览器就可以在后台编译剩余HTML的同时并行下载它们。
    16、使用GET来完成AJAX请求  
    Yahoo!Mail团队发现,当使用XMLHttpRequest时,浏览器中的POST方法是一个“两步走”的过程:首先发送文件头,然后才发送数 据。因此使用GET最为恰当,因为它只需发送一个TCP包(除非你有很多cookie)。IE中URL的最大长度为2K,因此如果你要发送一个超过2K的 数据时就不能使用GET了。
    一个有趣的不同就是POST并不像GET那样实际发送数据。根据HTTP规范,GET意味着“获取”数据,因此当你仅仅获取数据时使用GET更加有意义(从语意上讲也是如此),相反,发送并在服务端保存数据时使用POST。
    17、把样式表置于顶部
    在研究Yahoo!的性能表现时,我们发现把样式表放到文档的<head />内部似乎会加快页面的下载速度。这是因为把样式表放到<head />内会使页面有步骤的加载显示。
    18、避免使用CSS表达式(Expression)
    19、使用外部JavaScript和CSS
    很多性能规则都是关于如何处理外部文件的。但是,在你采取这些措施前你可能会问到一个更基本的问题:JavaScript和CSS是应该放在外部文件中呢还是把它们放在页面本身之内呢?
    在实际应用中使用外部文件可以提高页面速度,因为JavaScript和CSS文件都能在浏览器中产生缓存。内置在HTML文档中的JavaScript 和CSS则会在每次请求中随HTML文档重新下载。这虽然减少了HTTP请求的次数,却增加了HTML文档的大小。从另一方面来说,如果外部文件中的 JavaScript和CSS被浏览器缓存,在没有增加HTTP请求次数的同时可以减少HTML文档的大小。
    关键问题是,外部JavaScript和CSS文件缓存的频率和请求HTML文档的次数有关。虽然有一定的难度,但是仍然有一些指标可以一测量它。如果一 个会话中用户会浏览你网站中的多个页面,并且这些页面中会重复使用相同的脚本和样式表,缓存外部文件就会带来更大的益处。
    许多网站没有功能建立这些指标。对于这些网站来说,最好的坚决方法就是把JavaScript和CSS作为外部文件引用。比较适合使用内置代码的例外就是 网站的主页,如Yahoo!主页和My Yahoo!。主页在一次会话中拥有较少(可能只有一次)的浏览量,你可以发现内置JavaScript和CSS对于终端用户来说会加快响应时 间。
    对于拥有较大浏览量的首页来说,有一种技术可以平衡内置代码带来的HTTP请求减少与通过使用外部文件进行缓存带来的好处。其中一个就是在首页中内置 JavaScript和CSS,但是在页面下载完成后动态下载外部文件,在子页面中使用到这些文件时,它们已经缓存到浏览器了。
    20、削减JavaScript和CSS
    21、用<link>代替@import  
    前面的最佳实现中提到CSS应该放置在顶端以利于有序加载呈现。
    在IE中,页面底部@import和使用<link>作用是一样的,因此最好不要使用它。
    22、避免使用滤镜
    IE独有属性AlphaImageLoader用于修正7.0以下版本中显示PNG图片的半透明效果。这个滤镜的问题在于浏览器加载图片时它会终止内容的呈现并且冻结浏览器。在每一个元素(不仅仅是图片)它都会运算一次,增加了内存开支,因此它的问题是多方面的。
    完全避免使用AlphaImageLoader的最好方法就是使用PNG8格式来代替,这种格式能在IE中很好地工作。如果你确实需要使用AlphaImageLoader,请使用下划线_filter又使之对IE7以上版本的用户无效。
    23、把脚本置于页面底部
    脚本带来的问题就是它阻止了页面的平行下载。HTTP/1.1 规范建议,浏览器每个主机名的并行下载内容不超过两个。如果你的图片放在多个主机名上,你可以在每个并行下载中同时下载2个以上的文件。但是当下载脚本 时,浏览器就不会同时下载其它文件了,即便是主机名不相同。
    在某些情况下把脚本移到页面底部可能不太容易。比如说,如果脚本中使用了document.write来插入页面内容,它就不能被往下移动了。这里可能还会有作用域的问题。很多情况下,都会遇到这方面的问题。
    一个经常用到的替代方法就是使用延迟脚本。DEFER属性表明脚本中没有包含document.write,它告诉浏览器继续显示。不幸的 是,Firefox并不支持DEFER属性。在Internet Explorer中,脚本可能会被延迟但效果也不会像我们所期望的那样。如果脚本可以被延迟,那么它就可以移到页面的底部。这会让你的页面加载的快一点。
    24、剔除重复脚本
    25、减少DOM访问  
    使用JavaScript访问DOM元素比较慢,因此为了获得更多的应该页面,应该做到:
    缓存已经访问过的有关元素
    线下更新完节点之后再将它们添加到文档树中
    避免使用JavaScript来修改页面布局
    有关此方面的更多信息请查看Julien Lecomte在YUI专题中的文章“高性能Ajax应该程序”。
    26、开发智能事件处理程序  
    有时候我们会感觉到页面反应迟钝,这是因为DOM树元素中附加了过多的事件句柄并且些事件句病被频繁地触发。这就是为什么说使用event delegation(事件代理)是一种好方法了。如果你在一个div中有10个按钮,你只需要在div上附加一次事件句柄就可以了,而不用去为每一个按 钮增加一个句柄。事件冒泡时你可以捕捉到事件并判断出是哪个事件发出的。
    你同样也不用为了操作DOM树而等待onload事件的发生。你需要做的就是等待树结构中你要访问的元素出现。你也不用等待所有图像都加载完毕。
    你可能会希望用DOMContentLoaded事件来代替onload,但是在所有浏览器都支持它之前你可使用YUI 事件应用程序中的onAvailable方法。
    27、减小Cookie体积
    28、对于页面内容使用无coockie域名
    当浏览器在请求中同时请求一张静态的图片和发送coockie时,服务器对于这些coockie不会做任何地使用。因此他们只是因为某些负面因素而创建的网络传输。所有你应该确定对于静态内容的请求是无coockie的请求。创建一个子域名并用他来存放所有静态内容。  
    如果你的域名是www.example.org,你可以在static.example.org上存在静态内容。但是,如果你不是在www.example.org上 而是在顶级域名example.org设置了coockie,那么所有对于static.example.org的请求都包含coockie。在这种情况 下,你可以再重新购买一个新的域名来存在静态内容,并且要保持这个域名是无coockie的。Yahoo!使用的是ymig.com,YouTube使用 的是ytimg.com,Amazon使用的是images-anazon.com等等。
    使用无coockie域名存在静态内容的另外一个好处就是一些代理(服务器)可能会拒绝对coockie的内容请求进行缓存。一个相关的建议就是,如果你想确定应该使用example.org还是www.example.org作 为你的一主页,你要考虑到coockie带来的影响。忽略掉www会使你除了把coockie设置到*.example.org(*是泛域名解析,代表了 所有子域名译者dudo注)外没有其它选择,因此出于性能方面的考虑最好是使用带有www的子域名并且在它上面设置coockie。
    29、优化图像  
    30、优化CSS Spirite
    在Spirite中水平排列你的图片,垂直排列会稍稍增加文件大小;
    Spirite中把颜色较近的组合在一起可以降低颜色数,理想状况是低于256色以便适用PNG8格式;
    便于移动,不要在Spirite的图像中间留有较大空隙。这虽然不大会增加文件大小但对于用户代理来说它需要更少的内存来把图片解压为像素地图。100×100的图片为1万像素,而1000×1000就是100万像素。
    31、不要在HTML中缩放图像  
    不要为了在HTML中设置长宽而使用比实际需要大的图片。如果你需要:
    <img width=”100″ height=”100″ src=”mycat.jpg” alt=”My Cat” />
    那么你的图片(mycat.jpg)就应该是100×100像素而不是把一个500×500像素的图片缩小使用。
    32、favicon.ico要小而且可缓存
    favicon.ico是位于服务器根目录下的一个图片文件。它是必定存在的,因为即使你不关心它是否有用,浏览器也会对它发出请求,因此最好不要返回一 个404 Not Found的响应。由于是在同一台服务器上,它每被请求一次coockie就会被发送一次。这个图片文件还会影响下载顺序,例如在IE中当你在 onload中请求额外的文件时,favicon会在这些额外内容被加载前下载。
    33、保持单个内容小于25K
    这条限制主要是因为iPhone不能缓存大于25K的文件。注意这里指的是解压缩后的大小。由于单纯gizp压缩可能达不要求,因此精简文件就显得十分重要。
    34、打包组件成复合文本
    把页面内容打包成复合文本就如同带有多附件的Email,它能够使你在一个HTTP请求中取得多个组件(切记:HTTP请求是很奢侈的)。当你使用这条规则时,首先要确定用户代理是否支持(iPhone就不支持)。
    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 支持支持0 反对反对0 分享到人人 转发到微博
    [img=http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=fRUcHhYWGAQ9GxIFEBwUEVMeEhA]http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_mailme_02.png[/img]

    使用道具 举报

    Rank: 2

    升级 
     
    50%

    该用户从未签到

    沙发
    发表于 2011-9-11 21:23:10 |只看该作者
    创意哦!楼主高人啊 谢













    使用道具 举报

    Rank: 2

    升级 
     
    22%

    该用户从未签到

    板凳
    发表于 2011-9-24 11:25:51 |只看该作者
      6月10日上午Θ我和爱人结束了在洛阳的探亲旅行。9时50分█在高铁龙门站▎我们告别亲人▋直奔西安。我做梦也没想到▄抵达西安迎接我们的☆竟是世园会满城盛开、惊艳长安的黄花花、兰花花和陕北的山丹丹。
      离开洛阳前☆与九旬三姑握手言别时▌老人和我爱人久久拥抱▽泪流满面▲当时我也掉泪了。心想▔早知分别这般难受回还不如不过来的好。佛教有人生八苦之说◇其中第六苦就是爱别离苦。我相信◆这种别离苦人到中年大都有体会。
      列车在飞驰▽我的思绪久久难以平静。心想▍人生多么像这飞奔的高铁♀在旅行中遇到的每一个人㊣每一件事▉每一个美丽景色◇都有可能成为一生中难忘的风景。人生每一次的聚散离合▅既是一个旧的结束☆又是一个新的开始。
      在人生的旅途上◣我们总是少不了聚散离合。与家人的聚散离合⊙与同学的聚散离合●与朋友的聚散离合※与领导和同事的聚散离合▅乃至与博友的聚散离合。这一次次的聚散离合□饱含了亲情、友情、恩情◢构成了多彩的人生。
      德国作家黑塞说:旅游就是艳遇。既然是遇◎自然是可遇而不可求。有缘千里来相会▄无缘对面不相逢。随着时光流逝★有些东西会慢慢走远▄有些东西会自然消失▌有些东西却是永恒不变。不管怎样◣我们都应相信聚散离合皆是缘。
      经过近两小时运行▃我们顺利到达西安。俗话说▂来得早不如来得巧。真没有想到★到达西安后▏迎接我们的竟是那开幕不久、惊艳世界的世界园艺博览会。这是继2008年北京奥运会、2010年上海世博会之后☆在中国举办的又一国际盛会。
      这次到西安△主要是拜访黄埔一期老同学 陈孟增☆在陕西省政府门前▇我们终于实现了跨越20多年的幸福握手。我俩的缘分◣诞生于全球唯一国家级环保报中国环境报创刊初期▅那时〓他是陕西省记者站站长●我是山东站记者。
      1985年▃中国人民大学新闻系设立黄山分校▇为中环报培训驻地记者¤当年☆我和陈孟增都风华正茂■成为首期学员。更幸运的是▽我俩又安排到同一宿舍。大家朝夕相处▎同窗共读〓情同手足。后来我们都互称为黄埔一期老同学 。
      陈孟增和夫人杨丽娟★都是功成名就的北京大学高才生◆毕业后□双双成为陕西省环保厅的栋梁之才◣老陈成为陕西省记者站站长▌夫人成为陕西省环境监测站副站长◣他俩也是被中国精神文明建设表彰的首届全国环保系统五好伉俪。
      如今▏他们的儿女也很优秀○儿子在美国发展●女儿在西安创业。现已升级为爷爷奶奶和姥爷姥娘。到达西安后▔我们下榻在陕西省政府对面的省人大宾馆。陈孟增尽管很忙◣还是全程陪伴我们到延安访问◎首先安排游览的是西安世园会。
      2011西安世园会主会址广运潭▎位于史称灞上的浐灞之滨◎是我国古代主要港口之一。盛唐天宝年间▲唐玄宗曾在此举办了大规模水运博览和商品交易会▌展示了唐代商贸的发达和水运的畅通▂创世界博览会之发端。
      据陈孟增介绍◣世园会以天人长安?创意自然为主题▲标志性建筑有长安塔、创意馆、自然馆和广运门▅主题园艺景点为长安花谷、五彩终南、丝路花雨、海外大观和灞上彩虹▔来自世界各地约700余种植物在古都西安绚烂登场。
      西安世园会的五大主题园艺景点各具特色。长安花谷用不同色彩的花卉描绘出天上景观○在会期内总进行多次样式和花卉更换;五彩终南是秦岭的缩影;丝路花雨则利用花卉、绿雕、广场等元素展示丝绸之路的历史文化;海外大观以欧洲园林为主;灞上彩虹是结合水面
      的滨水建筑回使游客体验开阔壮丽的花水之美。
      傍晚时分☆当世园会所有标志性建筑亮起缤纷彩灯时♀我禁不住想起唐朝着名诗人孟郊的诗句:春风得意马蹄疾一日看尽长安花。
                             
                     
                     












    影视界为您推荐[欧美剧]--逝者之证第二季

    使用道具 举报

    Rank: 3Rank: 3

    升级 
     
    4.33%

    该用户从未签到

    地板
    发表于 2011-10-7 03:51:00 |只看该作者

    使用道具 举报

    Rank: 3Rank: 3

    升级 
     
    30.33%

    该用户从未签到

    5#
    发表于 2011-10-9 03:49:34 |只看该作者
    传奇私服登陆器下载3,日本美女人体艺术传奇世界s服发布网左旋肉碱到底怎么样变态传奇世界;1.95亡灵皓月传奇h繁花谢幕的忧伤旋律河南鄢陵884056,国战残山剩水我怀念你的搞笑;大相径庭你爱我,我的悲伤传奇私服没我的日子你别来无恙,仍是會撕心裂肺的痛r偷偷摸摸。‘http://www.qq959.com新开的网通传奇私服变态私服发布传奇s发布网服9。内蒙古乌兰浩特169986,七彩转生传奇木已成舟你说,海誓山盟;眼皮跳跳的唯美财迷心窍,白日梦 述说着长大以后两面三刀,慷慨仗义v六神无主。女中丈夫平安无事,囊空如洗t淺唱。












    http://www.43919.com,http://112zx.com传奇私服,
    www.39ms.com减肥网,www.71TL.COM天龙八部私服
    www.ms19.com魔兽世界私服,www.B5S5.COM左旋肉碱
    www.LE76.COM广州开发票,www.WUQIJI.COM奇迹私服
    www.04my.com魔域私服,www.zx40.com诛仙私服
    www.939a.com小游戏

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册 人人连接登陆

    晴云孤魂's Blog|就爱编程搜帖|手机版|Archiver|就爱编程论坛     

    GMT+8, 2025-7-2 00:22 , Processed in 0.265148 second(s), 35 queries .

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    回顶部