用户操作
[即时聊天] [发私信] [加为好友]
creazyfrogID:creazyfrog
10372次访问,排名10664好友0人,关注者3
creazyfrog的文章
原创 13 篇
翻译 0 篇
转载 41 篇
评论 9 篇
最近评论
xiepeng:需要学习
xiepeng:需要学习
renxiaoyao868:谢谢 收获很多
zoe0122:有没有C++搜索引擎 网页搜集模块 蜘蛛程序的代码?谢谢!

sharpsleepy:写的很好 看了好久了 感谢
文章分类
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    转载 Web 前端优化最佳实践之 Server 篇收藏

    新一篇: Web 前端优化最佳实践之内容篇 | 旧一篇: 软件设计效率的根源

    Web 前端优化最佳实践第二部分面向 Server 。目前共计有 6 条实践规则。【注,这最多算技术笔记,查看最原始内容,还请访问:Exceptional Performance : Best Practices for Speeding Up Your Web Site

    1. 使用 CDN (Use a Content Delivery Network)

    国内 CDN 的普及还不够。不过我们有独特的电信、网通之间的问题,如果针对这个作优化,基本上也算能收到 CDN 或类似的效果吧(假装如此)。【Tin 说国内 CDN 用的挺多,看看 CDN 厂商的市场就知道了,还没走入寻常百姓家】

    2. 添加 Expires 或 Cache-Control 信息头 (Add an Expires or a Cache-Control Header)

    各个浏览器都有针对的方案, Apache 例子【注意:下面的说明例子还不够精细,具体的环境上还要加一些调整】:
    ExpiresActive On
    ExpiresByType image/gif "modification plus 1 weeks"

    Lighttpd 启用 mod_expire 模块 后:

    $HTTP["url"] =~ "\.(jpg|gif|png)___FCKpd___1quot; {
         expire.url = ( "" => "access 1 years" )
    }

    Nginx 例子参考:

    location ~* \.(jpg|gif|png)$ {
      if (-f $request_filename) {
            expires      max;
        break; 
      }        
    }

    3. 压缩内容 (Gzip Components)

     

    对于绝大多数站点,这都是必要的一步,能有效减轻网络流量压力。或许有人担心对 CPU 压缩对于 CPU 的影响,放心大胆的整吧,没事儿。Nginx 例子:

    gzip            on;
    gzip_types      text/plain text/html text/css ext/javascript;

    另外参见:

    4. 设置 Etags (Configure ETags)

    对于 Etag,可能是多数网站维护者都会忽略的地方。在这一系列优化规则出现之前,可能互联网上绝大多数站点都对这个问题忽略了。当然,Etag 对多数站点性能的影响并不是很大。除非是面向 RSS 的网站。【看到有朋友批评说写的简略,并且说 IE 不支持 ETag。明确说一下:IE 支持 ETag,倒是使用 IIS 要注意相关 Etag Bug。】

    补充:我的意思是"很多网站在不注意的情况下都是打开 Etag 的,而没有网站关心如何用,消耗资源而不知。并不是说 Etag 不好,合理利用 Etag ,绝对能取得很好的收益.

    5. 尽早刷新 Buffer (Flush the Buffer Early)

    对这一条,琢磨了半天,貌似还是异步的思路。能更好的提升用户体验?

    6. 对 AJAX 请求使用 GET 方法 (Use GET for AJAX Requests)

    XMLHttpRequest POST 要两步,而 GET 只需要一步。但要注意的是在 IE 上 GET 最大能处理的 URL 长度是 2K。

     

    --EOF--

    Updated: 另请参见楼下高春辉的留言,很精彩

     

    高春辉 的评论:

    几个不同或者需要补充的地方: 1、“当然,Etag 对多数站点性能的影响并不是很大。”应该说 Etag 在正确使用的情况下,会让大量的请求以 304 头方式响应,可以相当的节省服务器资源和带宽。之前一些地方写的不要使用 Etag,是基于有些 webserver 的 Etag 的计算方法中包含了 inode,这在多台web服务器的情况不可采用的,而改变这个计算方法就可以了。

    2、对于尽早刷新这点,PHP 几乎是做不到的。即使你执行了 flush 以及类似的函数,也要等到请求完全执行之后,才会输出给浏览器端。

    3、AJAX 使用 GET 和 POST 各有好处,GET 方式可以更快响应,但是可能会有被浏览器缓存的问题,一般都需要加个随机数来避免,POST 方式则不会。所以最好是根据自己的情况分别使用 GET 和 POST 方法。

    发表于 @ 2008年07月05日 09:27:31|评论(loading...)|编辑|收藏

    新一篇: Web 前端优化最佳实践之内容篇 | 旧一篇: 软件设计效率的根源

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © creazyfrog