<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title><![CDATA[GreenGnn.ORG - Performance]]></title>
<link>http://www.greengnn.org/index.php/feed/category/performance/</link>
<language>zh-cn</language>
<description/>
<pubDate>Fri, 30 Jul 2010 23:33:13 -0500</pubDate>
<item>
<title><![CDATA[应用google gears提高打开速度]]></title>
<link>http://www.greengnn.org/index.php/2009/08/06/4.html</link>
<pubDate>Thu, 06 Aug 2009 15:51:55 +0000</pubDate>
<category><![CDATA[JavaScript]]></category>
<category><![CDATA[Performance]]></category>
<category><![CDATA[google]]></category>
<description><![CDATA[google gears是提供离线存储的一个平台，NB的应用gmail的离线版，google日历的离线版等，他的本地存储对不经常变动的静态文件进行存储，降低请求数挺爽的，qzone已经采用了，不过今天...]]></description>
<guid>http://www.greengnn.org/index.php/2009/08/06/4.html</guid>
<slash:comments0/>
<comments>http://www.greengnn.org/index.php/2009/08/06/4.html#comments</comments>
<content:encoded><![CDATA[<p>google gears是提供离线存储的一个平台，NB的应用gmail的离线版，google日历的离线版等，他的<a href="http://code.google.com/intl/zh-CN/apis/gears/api_localserver.html#overview" target="_blank">本地存储</a>对不经常变动的静态文件进行存储，降低请求数挺爽的，qzone已经采用了，不过今天我测试了下又没了。</p><p>下面简单几句就搞定静态文件的存储，如果安装了gears，就可以体验到我的blog的文件本地存储服务。<br />一个完整的<a href="http://www.greengnn.org/lab/gears/index.html" target="_blank">离线测试demo</a>。</p><p>简单的代码</p><pre>&lt;script&nbsp;type="text/javascript"&nbsp;src="gears_init.js"&gt;&lt;/script&gt;
&lt;script&nbsp;type="text/javascript"&gt;
var&nbsp;localServer&nbsp;=&nbsp;google.gears.factory.create('beta.localserver');
var&nbsp;store&nbsp;=&nbsp;localServer.createManagedStore('test-store');
store.manifestUrl&nbsp;=&nbsp;'site-manifest.txt';
store.checkForUpdate();
&lt;/script&gt;</pre><pre>//&nbsp;site-manifest.txt
{
&nbsp;&nbsp;"betaManifestVersion":&nbsp;1,
&nbsp;&nbsp;"version":&nbsp;"site_version_string",
&nbsp;&nbsp;"entries":&nbsp;[
&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"url":&nbsp;"site.html"&nbsp;},
&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"url":&nbsp;"gears_init.js"&nbsp;}
&nbsp;&nbsp;]
}</pre>]]></content:encoded>
<author><![CDATA[greengnn]]></author>
<dc:creator><![CDATA[greengnn]]></dc:creator>
<wfw:commentRss>http://www.greengnn.org/index.php/feed/2009/08/06/4.html</wfw:commentRss>
</item>
<item>
<title><![CDATA[js和css文件的延迟加载]]></title>
<link>http://www.greengnn.org/index.php/2009/08/06/3.html</link>
<pubDate>Thu, 06 Aug 2009 01:44:28 +0000</pubDate>
<category><![CDATA[JavaScript]]></category>
<category><![CDATA[Performance]]></category>
<description><![CDATA[正常情况下，文件会被写到head区域，不管本页面用得到用不到就要加载，这种方式会造成一次性请求数过多加大block的时间，也容易造成文件字节过大。

延迟加载的方案是通过js在dom需要的位置load...]]></description>
<guid>http://www.greengnn.org/index.php/2009/08/06/3.html</guid>
<slash:comments0/>
<comments>http://www.greengnn.org/index.php/2009/08/06/3.html#comments</comments>
<content:encoded><![CDATA[<p>正常情况下，文件会被写到head区域，不管本页面用得到用不到就要加载，这种方式会造成一次性请求数过多加大block的时间，也容易造成文件字节过大。</p><p>延迟加载的方案是通过js在dom需要的位置load文件，比如一些需要用户触发才展示的组件，日历选择，弹出框等。</p><p>一个<a href="http://www.greengnn.org/lab/load/test.html" target="_blank">demo</a></p><pre>function&nbsp;loadScript(url,&nbsp;callback){

&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;script&nbsp;=&nbsp;document.createElement("script")
&nbsp;&nbsp;&nbsp;&nbsp;script.type&nbsp;=&nbsp;"text/javascript";

&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(script.readyState){&nbsp;&nbsp;//IE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script.onreadystatechange&nbsp;=&nbsp;function(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(script.readyState&nbsp;==&nbsp;"loaded"&nbsp;||
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script.readyState&nbsp;==&nbsp;"complete"){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script.onreadystatechange&nbsp;=&nbsp;null;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{&nbsp;&nbsp;//Others
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script.onload&nbsp;=&nbsp;function(){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callback();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;script.src&nbsp;=&nbsp;url;
&nbsp;&nbsp;&nbsp;&nbsp;document.getElementsByTagName("head")[0].appendChild(script);
}
function&nbsp;loadCSS(url){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;cssLink&nbsp;=&nbsp;document.createElement("link");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cssLink.rel&nbsp;=&nbsp;"stylesheet";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cssLink.rev&nbsp;=&nbsp;"stylesheet";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cssLink.type&nbsp;=&nbsp;"text/css";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cssLink.media&nbsp;=&nbsp;"screen";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cssLink.href&nbsp;=&nbsp;url;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementsByTagName("head")[0].appendChild(cssLink);
}</pre>]]></content:encoded>
<author><![CDATA[greengnn]]></author>
<dc:creator><![CDATA[greengnn]]></dc:creator>
<wfw:commentRss>http://www.greengnn.org/index.php/feed/2009/08/06/3.html</wfw:commentRss>
</item>
</channel>
</rss>