<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feeds.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feeds.feedsky.com/csdn.net/overmaker" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feeds.feedsky.com/csdn.net/overmaker" type="application/rss+xml"></fs:self_link><lastBuildDate>Wed, 10 Jun 2009 21:16:00 GMT</lastBuildDate><title>overmaker的专栏</title><link>http://blog.csdn.net/overmaker/</link><item><title>DOM与SAX的特点与区别</title><link>http://blog.csdn.net/overmaker/archive/2009/06/10/4258849.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/4258849.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/4258849.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4258849</trackback:ping><description>&lt;br /&gt;&lt;br /&gt;DOM 提供了一组丰富的功能，您可以用这些功能来解释和操作 XML 文档，但使用它们是有代价的。在开发用于 XML 文档的原始 DOM 时，XML-DEV 邮件列表上的许多人提出了 DOM 的几个问题：DOM 构建整个文档驻留内存的树。如果文档很大，就会要求有极大的内存。 DOM 创建表示原始文档中每个东西的对象，包括元素、文本、属性和空格。如果您只需关注原始文档的一小部分，那么创建那些永远不被使用的对象是极其浪费的。 DOM 解析器必须在您的代码取得控制权之前读取整个文档。对于非常大的文档，这会引起显著的延迟。 &lt;br /&gt;这些仅仅是由文档对象模型的设计引起的问题；撇开这些问题，DOM API 是解析 XML 文档非常有用的方法。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;为了解决 DOM 问题，XML-DEV 参与者们（由 David Megginson 领导）创建了 SAX 接口。SAX 的几个特征解决了 DOM 的问题：SAX 解析器向您的代码发送事件。当解析器发现元素开始、元素结束、文本、文档的开始或结束等时，它会告诉您。您可以决定什么事件对您重要，而且可&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/4258849.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/236636224/overmaker/csdn.net/s.gif?r=http://blog.csdn.net/overmaker/archive/2009/06/10/4258849.aspx&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636224/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636224/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 11 Jun 2009 05:16:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2009/06/10/4258849.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2009/06/10/4258849.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2009/06/10/4258849.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636224/1154920</fs:itemid></item><item><title>java使用代理访问网络的几种方法</title><link>http://blog.csdn.net/overmaker/archive/2009/05/10/4166399.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/4166399.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/4166399.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4166399</trackback:ping><description>&lt;br /&gt;有些时候我们的网络不能直接连接到外网, 需要使用http或是https或是socket代理来连接到外网, 这里是java使用代理连接到外网的一些方法.    方法一使用系统属性来完成代理设置, 这种方法比较简单, 但是不能对单独的连接来设置代理:    public static void main(String[] args) {            Properties prop = System.getProperties();            // 设置http访问要使用的代理服务器的地址            prop.setProperty(&quot;http.proxyHost&quot;, &quot;192.168.0.254&quot;);            // 设置http访问要使用的代理服务器的端口            prop.setProperty(&quot;http.proxyPort&quot;, &quot;8080&quot;);            // 设置不需要通过代理服务器访问的主机，可以使用*通配符，多个地址用|分隔            prop.setProperty(&quot;http.&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/4166399.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636225/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636225/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 11 May 2009 06:42:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2009/05/10/4166399.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2009/05/10/4166399.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2009/05/10/4166399.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636225/1154920</fs:itemid></item><item><title>穿透SOCKS5的UDP编程</title><link>http://blog.csdn.net/overmaker/archive/2009/05/10/4166391.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/4166391.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/4166391.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4166391</trackback:ping><description>&lt;br /&gt;     网络编程中，对于数据传输实时性要求较高的场合，大家都会选择UDP来作为数据传输协议，在TCP/IP协议族中UDP协议较TCP协议需要的网络系统资源更少。然而在企业应用中，由于网络安全原因等会导致除了特定端口以外的IP数据无法通过专用的路由或网关。为了支持这类应用，制定了专门的支持Socks连接的socks4/socsk5协议。Socks协议允许实现此类功能的代理软件可以允许防火墙(本文以下内容中防火墙与代理的称谓可以等同视之)以内的客户通过防火墙实现对外部的访问，甚至可以允许等待外部的连接。对于防火墙内部的软件客户端，仅同防火墙协商，同防火墙的特定端口取得联系，然后交换数据，而防火墙外部的程序也直同防火墙进行数据交换，外部看不到防火墙的内部网情况，这样起到了防火墙的监护功能，也满足了大多数通过非常用（如http ftp等）端****换数据的应用程序需求。防火墙内部的应用程序如何通过防火墙将UDP数据传输到防火墙外部，并且接受外部的UDP数据报文，这就是所谓穿透Socks代理的UDP编程。 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RFC1928描述了Sock&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/4166391.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636226/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636226/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 11 May 2009 06:39:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2009/05/10/4166391.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2009/05/10/4166391.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2009/05/10/4166391.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636226/1154920</fs:itemid></item><item><title>finalize( ) 方法详解</title><link>http://blog.csdn.net/overmaker/archive/2009/03/31/4038815.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/4038815.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/4038815.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4038815</trackback:ping><description>java中的finalize()方法类似于C++中的析构函数，调用周期都为当销毁某一个对象时被调用，一般用于回收已用完的垃圾对象的资源&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/4038815.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636227/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636227/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 31 Mar 2009 23:25:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2009/03/31/4038815.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2009/03/31/4038815.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2009/03/31/4038815.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636227/1154920</fs:itemid></item><item><title>java的synchronized关键字的用法</title><link>http://blog.csdn.net/overmaker/archive/2009/03/31/4038803.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/4038803.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/4038803.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=4038803</trackback:ping><description>synchronized关键字用法&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/4038803.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636228/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636228/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 31 Mar 2009 23:22:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2009/03/31/4038803.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2009/03/31/4038803.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2009/03/31/4038803.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636228/1154920</fs:itemid></item><item><title>h:panelGrid、h:panelGroup标签学习</title><link>http://blog.csdn.net/overmaker/archive/2009/03/17/3998777.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/3998777.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/3998777.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3998777</trackback:ping><description>&lt;br /&gt;这个标签可以用来作简单的组件排版，它会使用HTML表格标签来绘制表格，并将组件置于其中，主要指定columns属性，例如设定为 2：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;则自动将组件分作 2 个 column来排列，排列出来的样子如下：&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;的本体间只能包括&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/3998777.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636229/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636229/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 18 Mar 2009 01:05:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2009/03/17/3998777.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2009/03/17/3998777.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2009/03/17/3998777.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636229/1154920</fs:itemid></item><item><title>f:verbatim标签的实践用法（Myfaces）</title><link>http://blog.csdn.net/overmaker/archive/2009/03/13/3985955.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/3985955.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/3985955.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3985955</trackback:ping><description>官方文档中廖廖几笔：Outputs its body as verbatim text. No JSP tags within the verbatim tag (including JSF tags) are evaluated; the content is treated simply as literal text to be copied to the response. Unless otherwise specified, all attributes accept static values or EL expressions.&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/3985955.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636230/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636230/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 13 Mar 2009 09:02:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2009/03/13/3985955.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2009/03/13/3985955.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2009/03/13/3985955.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636230/1154920</fs:itemid></item><item><title>f:facet标签 的用法</title><link>http://blog.csdn.net/overmaker/archive/2009/03/13/3985921.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/3985921.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/3985921.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3985921</trackback:ping><description>f:facet标签用来为包含f:facet标签的父组件与被f:facet标签所包含的子组件之间申明一种特殊的关系。常与h:panelGrid，h:dataTable等标签连用，申明组件为标题或页脚。&lt;br /&gt;在自定义组件里，我们常可利用 f:facet 为组件添加特别的属性或处理，例如MyFaces提供的翻页组件就利用f:facet制作翻页工具条。&lt;br /&gt;f:facet用法例：f:facet常用用法&lt;br /&gt;&lt;br /&gt;...jsf组件&lt;br /&gt;&lt;br /&gt;在自定义组件里使用f:facet时，可以使用UIComponent.getFacets().get(&quot;facet名&quot;)方法取得指定的facet组件：&lt;br /&gt;(UIComponent) getFacets().get(&quot;facet名&quot;);&lt;br /&gt;h:dataTable使用f:facet例：&lt;br /&gt;&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/3985921.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636231/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636231/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 13 Mar 2009 08:46:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2009/03/13/3985921.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2009/03/13/3985921.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2009/03/13/3985921.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636231/1154920</fs:itemid></item><item><title>UDP穿透NAT的原理与实现（UDP“打洞”原理）</title><link>http://blog.csdn.net/overmaker/archive/2008/11/01/3201799.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/3201799.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/3201799.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3201799</trackback:ping><description>关于UDP穿透NAT的中文资料在网络上是很少的，仅有&gt;这篇文章有实际的参考价值。本人近两年来也一直从事P2P方面的开发工作，比较有代表性的是个人开发的BitTorrent下载软件 - FlashBT(变态快车). 对P2P下载或者P2P的开发感兴趣的朋友可以访问软件的官方主页: http://www.hwysoft.com/chs/ 下载看看，说不定有收获。写这篇文章的主要目的是懒的再每次单独回答一些网友的提问, 一次性写下来, 即节省了自己的时间，也方便了对于P2P的UDP穿透感兴趣的网友阅读和理解。对此有兴趣和经验的朋友可以给我发邮件或者访问我的个人Blog留言: http://hwycheng.blogchina.com. 
您可以自由转载此篇文章，但是请保留此说明。

再次感谢shootingstars网友的早期贡献. 表示谢意。

&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/3201799.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636232/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636232/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Sun, 02 Nov 2008 00:23:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2008/11/01/3201799.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2008/11/01/3201799.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2008/11/01/3201799.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636232/1154920</fs:itemid></item><item><title>高性能网页开发的14条军规</title><link>http://blog.csdn.net/overmaker/archive/2008/10/20/3111344.aspx</link><wfw:comment>http://blog.csdn.net/overmaker/comments/3111344.aspx</wfw:comment><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/overmaker/comments/commentRss/3111344.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=3111344</trackback:ping><description>&lt;br /&gt;相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax，flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实现的功能。比如Google机会已经把最基本的office应用都搬到了互联网上。当然便利的同时毫无疑问的也使页面的速度越来越慢。自己是做前端开发的，在性能方面，根据yahoo的调查，后台只占5%，而前端高达95%之多，其中有88%的东西是可以优化的。&lt;br /&gt;&lt;br /&gt;以上是一张web2.0页面的生命周期图。工程师很形象地讲它分成了“怀孕，出生，毕业，结婚”四个阶段。如果在我们点击网页链接的时候能够意识到这个过程而不是简单的请求-响应的话，我们便可以挖掘出很多细节上可以提升性能的东西。今天听了淘宝小马哥的一个对yahoo开发团队对web性能研究的一个讲座，感觉收获很大，想在blog上做个分享。&lt;br /&gt;相信很多人都听过优化网站性能的14条规则。更多的信息可见developer.yahoo.com1. 尽可能的减少 HTTP 的请求数[content]2. 使用 CDN（Content Delivery Network）[server&lt;img src =&quot;http://blog.csdn.net/overmaker/aggbug/3111344.aspx&quot; width = &quot;1&quot; height = &quot;1&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/csdn.net/overmaker/236636233/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/csdn.net/overmaker/236636233/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 21 Oct 2008 01:19:00 +0800</pubDate><author>overmaker</author><comments>http://blog.csdn.net/overmaker/archive/2008/10/20/3111344.aspx#Feedback</comments><guid isPermaLink="false">http://blog.csdn.net/overmaker/archive/2008/10/20/3111344.aspx</guid><dc:creator>overmaker</dc:creator><fs:srclink>http://blog.csdn.net/overmaker/archive/2008/10/20/3111344.aspx</fs:srclink><fs:srcfeed>http://blog.csdn.net/overmaker/feed.aspx</fs:srcfeed><fs:itemid>csdn.net/overmaker/~1154935/236636233/1154920</fs:itemid></item></channel></rss>