<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>疯狂的叶——前端技术博客</title>
	<atom:link href="http://www.crazyleaves.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crazyleaves.com</link>
	<description>每天学习一点，每天进步一点，终将天下无敌</description>
	<lastBuildDate>Wed, 02 May 2012 08:36:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>等高布局&amp;跟随布局&amp;垂直居中</title>
		<link>http://www.crazyleaves.com/css_stand_02/</link>
		<comments>http://www.crazyleaves.com/css_stand_02/#comments</comments>
		<pubDate>Wed, 02 May 2012 08:36:39 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=157</guid>
		<description><![CDATA[本来以为自己的css起码不会很烂。。在项目过程中，遇到几个问题，以前遇到的时候都是google的，现在就稍微整理了一下出来，几种常用到的但是有那么点难度的样式：（高人可以略过！） 1、等高布局，N列等高布局 效果如下： &#160; 2、跟随布局（时间紧跟在新闻条目之后，新闻太长会自动隐藏） 效果如下： &#160; 3、图片垂直并且水平居中 &#160; 看了三种情况，会写的也应该会了。。不会的么，那肯定还是不会了的。 下面来揭晓答案：点我看答案 &#160;]]></description>
			<content:encoded><![CDATA[<p>本来以为自己的css起码不会很烂。。在项目过程中，遇到几个问题，以前遇到的时候都是google的，现在就稍微整理了一下出来，几种常用到的但是有那么点难度的样式：（高人可以略过！）</p>
<h4>1、等高布局，N列等高布局</h4>
<p>效果如下：</p>
<p><img class="alignnone" src="http://www.crazyleaves.com/demo/img/img_demo1_20120502.jpg" alt="" width="550" height="201" /></p>
<p>&nbsp;</p>
<h4>2、跟随布局（时间紧跟在新闻条目之后，新闻太长会自动隐藏）</h4>
<p>效果如下：</p>
<p><img class="alignnone" src="http://www.crazyleaves.com/demo/img/img_demo2_20120502.jpg" alt="" width="352" height="157" /></p>
<p>&nbsp;</p>
<h4>3、图片垂直并且水平居中</h4>
<p><img class="alignnone" src="http://www.crazyleaves.com/demo/img/img_demo3_20120502.jpg" alt="" width="155" height="298" /></p>
<p>&nbsp;</p>
<p>看了三种情况，会写的也应该会了。。不会的么，那肯定还是不会了的。</p>
<p>下面来揭晓答案：<a title="等高布局&amp;跟随布局&amp;垂直居中" href="http://www.crazyleaves.com/demo/stand_css_02.html" target="_blank" style="font-size:20px">点我看答案</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/css_stand_02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>前端页面模块化</title>
		<link>http://www.crazyleaves.com/%e5%89%8d%e7%ab%af%e9%a1%b5%e9%9d%a2%e6%a8%a1%e5%9d%97%e5%8c%96/</link>
		<comments>http://www.crazyleaves.com/%e5%89%8d%e7%ab%af%e9%a1%b5%e9%9d%a2%e6%a8%a1%e5%9d%97%e5%8c%96/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 03:05:22 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[KISSY]]></category>
		<category><![CDATA[前端优化]]></category>
		<category><![CDATA[模块化]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=151</guid>
		<description><![CDATA[最近一直忙着搞项目，首页改版，所以一直就没有更新文章。 页面制作为什么需要模块化？ 现在貌似要降低运营成本，也就是，让运营填写的部分就少了，也就同样的，整个页面基本上都是异步出来的。可以看一下整个页面： 红框为数据接口，共有7个接口。如果让页面一载入的时候，就一起把这些接口都异步出来，估计页面的打开速度会受到很大的影响。而如何解决这个问题，我们很容易想到：减少代码冗余、提高代码重用率、图片压缩等等，而这些要如何实现呢？模块化思维可以解决，即可以有效减少代码冗余、提高代码重用率，更重 要是可以支持到多人维护，降低维护成本。CSS写法较为灵活，容易产生代码的耦合，使用模块化也可以在一定程度上降低耦合度，对于BUG的定位也有帮助。 所以，我们更应该在站点前期就重视并使用“模块化的思维”编写站点。（“模块化”只是我们对于过去一直使用的技术、方法的一个新潮的称谓，就像“Ajax”。） 我们之前经常提到的站点性能优化，有相当一部分也是“模块化”的内容，比如提高代码重用，提高开发效率等等，“模块化”的优点还有很多，我大概列了一下： 提高代码重用率 提高开发效率、减少沟通成本 降低耦合 降低发布风险 减少Bug定位时间和Fix成本 提高页面容错 更好的实现快速迭代 更好的支持灰度发布 其中最重要的一点，我认为是“提高代码重用率”，这也是模块化最重要的特点之一。 如何实现“模块化”？ 以我上面的页面为例：我将页面划分为八个大模块，当然了，第一屏那个大的模块，还是可以继续划分的。 在kissy里面，可以用add增加一个方法，在这个里面，去执行函数 add的用法 HTML： &#60;div&#62; &#60;div&#62;111222&#60;/div&#62; &#60;textarea class='ks-datalazyload hidden'&#62; &#60;script&#62; KISSY.use('yourmod1', function(S) { S.YourFn.init(); }); &#60;/script&#62; &#60;/textarea&#62; &#60;/div&#62; JS: KISSY.add(&#34;yourmod&#34;,function(S){ var yourfn = function(){ //在这里发送请求 } //在这里定义一个函数 S.YourFn= { init: function() { yourfn(); } } } ); 这里用textarea [...]]]></description>
			<content:encoded><![CDATA[<p>最近一直忙着搞项目，首页改版，所以一直就没有更新文章。</p>
<p><strong>页面制作为什么需要模块化？</strong></p>
<p>现在貌似要降低运营成本，也就是，让运营填写的部分就少了，也就同样的，整个页面基本上都是异步出来的。可以看一下整个页面：<br />
<img alt="" src="http://img02.taobaocdn.com/tps/i2/T1MyvXXodeXXcb7ekr-321-858.jpg" class="alignnone" width="321" height="858" /></p>
<p>红框为数据接口，共有7个接口。如果让页面一载入的时候，就一起把这些接口都异步出来，估计页面的打开速度会受到很大的影响。而如何解决这个问题，我们很容易想到：减少代码冗余、提高代码重用率、图片压缩等等，而这些要如何实现呢？模块化思维可以解决，即可以有效减少代码冗余、提高代码重用率，更重 要是可以支持到多人维护，降低维护成本。CSS写法较为灵活，容易产生代码的耦合，使用模块化也可以在一定程度上降低耦合度，对于BUG的定位也有帮助。 所以，我们更应该在站点前期就重视并使用“模块化的思维”编写站点。（“模块化”只是我们对于过去一直使用的技术、方法的一个新潮的称谓，就像“Ajax”。）<br />
<span id="more-151"></span><br />
我们之前经常提到的站点性能优化，有相当一部分也是“模块化”的内容，比如提高代码重用，提高开发效率等等，“模块化”的优点还有很多，我大概列了一下：</p>
<p>提高代码重用率<br />
提高开发效率、减少沟通成本<br />
降低耦合<br />
降低发布风险<br />
减少Bug定位时间和Fix成本<br />
提高页面容错<br />
更好的实现快速迭代<br />
更好的支持灰度发布<br />
其中最重要的一点，我认为是“提高代码重用率”，这也是模块化最重要的特点之一。</p>
<p><strong>如何实现“模块化”？</strong></p>
<p>以我上面的页面为例：我将页面划分为八个大模块，当然了，第一屏那个大的模块，还是可以继续划分的。</p>
<p>在kissy里面，可以用add增加一个方法，在这个里面，去执行函数<br />
<a href="http://docs.kissyui.com/docs/html/api/seed/loader/add.ver1.2.html" target="_blank">add的用法</a></p>
<pre class="wp-code-highlight prettyprint">
HTML：

&lt;div&gt;
    &lt;div&gt;111222&lt;/div&gt;
    &lt;textarea class='ks-datalazyload hidden'&gt;
      &lt;script&gt;
          KISSY.use('yourmod1', function(S) {
            S.YourFn.init();
          });
      &lt;/script&gt;
    &lt;/textarea&gt;
&lt;/div&gt;

JS:
KISSY.add(&quot;yourmod&quot;,function(S){
	var yourfn = function(){
		//在这里发送请求
	}

	//在这里定义一个函数
	S.YourFn= {
          init: function() {
              yourfn();
          }
        }
    }
);
</pre>
<p>这里用textarea 来延迟加载需要的js，这样我的请求，只有在滚动到需要执行的地方才会被发送。（不知道是不是我的理解有错：这里和我们定义一个function yourmod(){},到需要用到的时候再调用。。有区别么？。。。）</p>
<p>有两个误区需要先认清下：<br />
模块化后并不是就能被使用在任何位置（模块化后的代码段也是有适用的范围限制，需要一个提供接口规则的环境）<br />
模块化后并不是就不能再变更（模块化后的代码段可根据实际需要做修改）</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/%e5%89%8d%e7%ab%af%e9%a1%b5%e9%9d%a2%e6%a8%a1%e5%9d%97%e5%8c%96/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4月1日亲情奉献【原创】</title>
		<link>http://www.crazyleaves.com/4%e6%9c%881%e6%97%a5%e4%ba%b2%e6%83%85%e5%a5%89%e7%8c%ae%e3%80%90%e5%8e%9f%e5%88%9b%e3%80%91/</link>
		<comments>http://www.crazyleaves.com/4%e6%9c%881%e6%97%a5%e4%ba%b2%e6%83%85%e5%a5%89%e7%8c%ae%e3%80%90%e5%8e%9f%e5%88%9b%e3%80%91/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 05:12:04 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[愚人节]]></category>
		<category><![CDATA[特效]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=146</guid>
		<description><![CDATA[今天4月1日，昨晚临时想了一下，写了个效果将页面翻转了下，小小的娱乐一下，顺便写在一个js里，方便调用。 该js基于jquery 的。 大家只要在想要翻转的地方加入   id=”container”  即可， 效果只要看我页面即可，右侧的鬼脸~~~ 点一下就复原啦，再点一下又翻了。。 点击这里查看demo：愚人节JS js地址：在这里 &#160;]]></description>
			<content:encoded><![CDATA[<p>今天4月1日，昨晚临时想了一下，写了个效果将页面翻转了下，小小的娱乐一下，顺便写在一个js里，方便调用。</p>
<p>该js基于jquery 的。</p>
<p>大家只要在想要翻转的地方加入   id=”container”  即可，</p>
<p>效果只要看我页面即可，右侧的鬼脸~~~</p>
<p>点一下就复原啦，再点一下又翻了。。</p>
<p>点击这里查看demo：<a style="font-size: 20px;" href="http://www.crazyleaves.com/demo/demo_yurenjie.html" target="_blank">愚人节JS</a></p>
<p>js地址：<a href="http://www.crazyleaves.com/demo/js/yurenjie.js" target="_blank">在这里</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/4%e6%9c%881%e6%97%a5%e4%ba%b2%e6%83%85%e5%a5%89%e7%8c%ae%e3%80%90%e5%8e%9f%e5%88%9b%e3%80%91/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>延迟加载的应用 KISSY</title>
		<link>http://www.crazyleaves.com/datalazyload/</link>
		<comments>http://www.crazyleaves.com/datalazyload/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 07:24:37 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[datalazyload]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[KISSY]]></category>
		<category><![CDATA[懒加载]]></category>
		<category><![CDATA[组件调用]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=140</guid>
		<description><![CDATA[网站的用户行为分析结果表明，很多时候，用户在你的首页第一屏时候，就已经找到自己想要的东西，点击跳转，走掉了，那么网站下面加载的东西都已经是没用的，纯粹是浪费网速~~ 那么我们就可以再技术上做到，只加载第一和第二屏的内容就可以了，在亮屏幕之外的内容可以等用户拉动滚动条了，再去加载其他的内容，达到用户在第一次访问网站时候提速的效果。下面是用 基于KISSY库的datalazyload效果。 &#60;textarea class='ks-datalazyload hidden'&#62; &#60;script&#62; KISSY.use(&#34;loader&#34;,function(S,loader){}); &#60;/script&#62; &#60;/textarea&#62; loader是我注册的一个方法，方法里面请求了一个接口，异步加载了一些数据进来， 如果你想直接使用这个组件，那么还是直接看demo吧，整个down下去就行了 这里是：datalazyload &#160; 下面是iframe的嵌入！]]></description>
			<content:encoded><![CDATA[<p>网站的用户行为分析结果表明，很多时候，用户在你的首页第一屏时候，就已经找到自己想要的东西，点击跳转，走掉了，那么网站下面加载的东西都已经是没用的，纯粹是浪费网速~~</p>
<p>那么我们就可以再技术上做到，只加载第一和第二屏的内容就可以了，在亮屏幕之外的内容可以等用户拉动滚动条了，再去加载其他的内容，达到用户在第一次访问网站时候提速的效果。下面是用 基于KISSY库的datalazyload效果。</p>
<pre class="wp-code-highlight prettyprint">
   &lt;textarea class='ks-datalazyload hidden'&gt;
        &lt;script&gt;
          KISSY.use(&quot;loader&quot;,function(S,loader){});
        &lt;/script&gt;
   &lt;/textarea&gt;
</pre>
<p><span id="more-140"></span><br />
loader是我注册的一个方法，方法里面请求了一个接口，异步加载了一些数据进来，<br />
如果你想直接使用这个组件，那么还是直接看demo吧，整个down下去就行了</p>
<p>这里是：<a style="font-size: 20px;" href="http://www.crazyleaves.com/demo/stand_datalazyload.html" target="_blank">datalazyload</a></p>
<p>&nbsp;</p>
<p>下面是iframe的嵌入！<iframe src="http://www.crazyleaves.com/demo/stand_datalazyload.html"  width="100%" height="300"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/datalazyload/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>JS本地存储应用</title>
		<link>http://www.crazyleaves.com/js%e6%9c%ac%e5%9c%b0%e5%ad%98%e5%82%a8%e5%ba%94%e7%94%a8/</link>
		<comments>http://www.crazyleaves.com/js%e6%9c%ac%e5%9c%b0%e5%ad%98%e5%82%a8%e5%ba%94%e7%94%a8/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 10:08:50 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[本地存储]]></category>
		<category><![CDATA[浮点数]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=131</guid>
		<description><![CDATA[研究了一下本地存储的东西，发现还是很犀利的，虽然是抄来的方法，不过很值得一学哦。html5是大趋势啊，势不可挡。 这里放代码意义不大，直接看源码吧！方法很封装，调用很简单！ &#160; 在这个过程中也碰到了一个问题，小数浮点型相加会出问题的，看下图，相加的结果： 不能精确计算，所以就去网上抄了个方法，还不错。 忙里偷闲，写了个相对来说还比较完整的页面：不多说了，上 demo &#160; 下面是iframe的嵌入！]]></description>
			<content:encoded><![CDATA[<p>研究了一下本地存储的东西，发现还是很犀利的，虽然是抄来的方法，不过很值得一学哦。html5是大趋势啊，势不可挡。</p>
<p>这里放代码意义不大，直接看源码吧！<strong><span style="color: #ff0000;">方法很封装，调用很简单！</span></strong></p>
<p>&nbsp;</p>
<p>在这个过程中也碰到了一个问题，小数浮点型相加会出问题的，看下图，相加的结果：</p>
<p><img class="size-full wp-image-132 alignnone" title="QQ截图20120322175740" src="http://www.crazyleaves.com/wp-content/uploads/2012/03/QQ截图20120322175740.png" alt="" width="144" height="207" /></p>
<p>不能精确计算，所以就去网上抄了个方法，还不错。</p>
<p>忙里偷闲，写了个相对来说还比较完整的页面：不多说了，上 <a style="font-size: 20px;" href="http://www.crazyleaves.com/demo/stand_localStorage.html" target="_blank">demo</a></p>
<p>&nbsp;</p>
<p>下面是iframe的嵌入！<iframe src="http://www.crazyleaves.com/demo/stand_localStorage.html" scrolling="no" width="100%" height="200"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/js%e6%9c%ac%e5%9c%b0%e5%ad%98%e5%82%a8%e5%ba%94%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于jquery的倒计时组件（原创）</title>
		<link>http://www.crazyleaves.com/cowntdown/</link>
		<comments>http://www.crazyleaves.com/cowntdown/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 09:14:56 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[cowntdown]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery插件]]></category>
		<category><![CDATA[倒计时]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=120</guid>
		<description><![CDATA[做过好几个东西，都有倒计时，代码都拷来拷去的，干脆就写了个函数，页面直接调用方便点， 功能很简单，就是倒计时，可以显示 “天、时、分、秒”，毫秒就没去加了。。 方法是基于jquery的，引用 js包或者把方法靠过来既可以了 页面上直接用就行，代码如下： 天时分秒 时间到了，我就会隐藏的 时间到了，我显示了 配置说明：(多个倒计时就重复div即可) J_Cowntdown ：倒计时box的class值，js是通过这个来找元素的； data-endTime ：结束时间，格式为 2012/03/16 15:01:00 。暂时只支持这个类型的； cd-d ：这些就是时分秒的框，需要什么调用什么（可选） cd_hide ：时间到了，会自动显示出来（可选） cd_show ：时间到了，会自动隐藏（可选） 下面放个 demo： 下面是iframe嵌入的： 水平有限，肯定没有jquery那些专业的倒计时好，等以后有时间再来扩展]]></description>
			<content:encoded><![CDATA[<p>做过好几个东西，都有倒计时，代码都拷来拷去的，干脆就写了个函数，页面直接调用方便点，<br />
功能很简单，就是倒计时，可以显示 “天、时、分、秒”，毫秒就没去加了。。<br />
方法是基于jquery的，引用 js包或者把方法靠过来既可以了<br />
页面上直接用就行，代码如下：</p>
<div class="J_Cowntdown" data-endtime="2012/03/23 00:00:00">天时分秒</p>
<div class="cd_hide">时间到了，我就会隐藏的</div>
<div class="cd_show" style="display: none;">时间到了，我显示了</div>
</div>
<p><span id="more-120"></span><br />
配置说明：(多个倒计时就重复div即可)<br />
J_Cowntdown ：倒计时box的class值，js是通过这个来找元素的；<br />
data-endTime ：结束时间，格式为 2012/03/16 15:01:00 。暂时只支持这个类型的；<br />
cd-d ：这些就是时分秒的框，需要什么调用什么（可选）<br />
cd_hide ：时间到了，会自动显示出来（可选）<br />
cd_show ：时间到了，会自动隐藏（可选）</p>
<p>下面放个 <a href="http://www.crazyleaves.com/demo/countdown.html" target="_top" style="font-size:20px">demo</a>：</p>
<p>下面是iframe嵌入的：<br />
<iframe src="http://www.crazyleaves.com/demo/countdown.html" scrolling="no" width="100%" height="200"></iframe></p>
<p>水平有限，肯定没有jquery那些专业的倒计时好，等以后有时间再来扩展</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/cowntdown/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>前端开发工具比较</title>
		<link>http://www.crazyleaves.com/%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7%e6%af%94%e8%be%83/</link>
		<comments>http://www.crazyleaves.com/%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7%e6%af%94%e8%be%83/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 08:51:34 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[dreamweaver]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[前端开发]]></category>
		<category><![CDATA[工具]]></category>
		<category><![CDATA[编辑器]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=112</guid>
		<description><![CDATA[最近一直很忙，不过都是一些没什么技术含量的东西，客户的反复修改，不断修改，一直修改，上线了还改的精神。。我是服了他们了。。。诶，生命在于折腾，不过感觉很爽的一件事情就是：vim的使用越来越纯熟了，在此要感谢google。在我使用vim的过程中，google给了我很多帮助。 网上关于vim的介绍有很多，我也就不重复了，在这里我想说一下我自己的感受，对比我用过的几个编辑器： 1、dreamweaver 做前端的人肯定很熟悉，adobe出品的，可视化编辑，易上手。一般是新手上路的最佳工具。 媲美程度相当于假腿： 出得快，人人必备，可一直用到战斗结束 &#160; 2、EditPlus 小型编辑器，轻便，速度快，用的不多，只是用来临时改个链接什么的，基本上不会用来做开发使用 媲美程度相当于大魔棒：平时用用还是很方便，但是丢的也快&#8230; &#160; 3、sublime text2 自带迷你小地图，可以概览整个文件。而且他的zencoding非常犀利，直接有实时预览功能。装了package control之后，可以随意安装插件，可以说，这个功能也是很强大的。美中不足的是，不能支持gbk编码，由于搞的很多东西是gbk的，所以，不得不忍痛割爱。 媲美程度相当于跳刀：自从有了他，居家旅行，杀人越货必备神器啊，可惜，有些人用不上 4、vim 被谦总鄙视了dw之后，开始下定决心学习，上手有点难，对着教程按键盘！不过上手之后，就好很多了。让鼠标见鬼去吧，现在如果开始专心写代码，基本上可以用不着鼠标了，这个太爽了，可以提高很多效率 媲美程度相当于圣剑：拿上它，代表的就是牛B。可是。。不是每个人都能买得起的。。。 &#160; 每个人都有每个人的习惯，我在此列出来的只是自己使用过的编辑器，其实还有很多很犀利的编辑器，欢迎大家补充！]]></description>
			<content:encoded><![CDATA[<p>最近一直很忙，不过都是一些没什么技术含量的东西，客户的反复修改，不断修改，一直修改，上线了还改的精神。。我是服了他们了。。。诶，生命在于折腾，不过感觉很爽的一件事情就是：vim的使用越来越纯熟了，在此要感谢google。在我使用vim的过程中，google给了我很多帮助。</p>
<p>网上关于vim的介绍有很多，我也就不重复了，在这里我想说一下我自己的感受，对比我用过的几个编辑器：</p>
<p><span id="more-112"></span></p>
<p><span style="color: #ff6600;"><strong>1、dreamweaver</strong></span><br />
做前端的人肯定很熟悉，adobe出品的，可视化编辑，易上手。一般是新手上路的最佳工具。<br />
<img class="alignnone" title="dw" src="http://img03.taobaocdn.com/tps/i3/T13HiWXelmXXXXXXXX-540-440.jpg" alt="dreamweaver" width="540" /></p>
<p>媲美程度相当于假腿：<img style="height: 32px; width: 32px; border: 0px; padding:0;margin:0" src="http://dotadb.uuu9.com/UploadFiles/Dota/Item/jtjt.jpg" alt="" /> 出得快，人人必备，可一直用到战斗结束</p>
<p>&nbsp;</p>
<p><span style="color: #ff6600;"><strong>2、EditPlus</strong></span><br />
小型编辑器，轻便，速度快，用的不多，只是用来临时改个链接什么的，基本上不会用来做开发使用<br />
<img class="alignnone" title="EditPlus" src="http://img02.taobaocdn.com/tps/i2/T1RriWXeVmXXXXXXXX-540-368.jpg" alt="EditPlus" width="540" /><br />
媲美程度相当于大魔棒：<img style="height: 32px; width: 32px; border: 0px;padding:0;margin:0" src="http://dotadb.uuu9.com/UploadFiles/Dota/Item/mzzm.gif" alt="" />平时用用还是很方便，但是丢的也快&#8230;</p>
<p>&nbsp;</p>
<p><strong><span style="color: #ff6600;">3、sublime text2</span></strong><br />
自带迷你小地图，可以概览整个文件。而且他的zencoding非常犀利，直接有实时预览功能。装了package control之后，可以随意安装插件，可以说，这个功能也是很强大的。美中不足的是，不能支持gbk编码，由于搞的很多东西是gbk的，所以，不得不忍痛割爱。<br />
<img class="alignnone" title="sublime text2" src="http://img01.taobaocdn.com/tps/i1/T12rmWXedkXXXXXXXX-540-421.png" alt="sublime text2" width="540" /><br />
媲美程度相当于跳刀：<img style="height: 32px; width: 32px; border: 0px;padding:0;margin:0" src="http://dotadb.uuu9.com/UploadFiles/Dota/Item/td.bmp" alt="" />自从有了他，居家旅行，杀人越货必备神器啊，可惜，有些人用不上</p>
<p><span style="color: #ff6600;"><strong>4、vim</strong></span><br />
被谦总鄙视了dw之后，开始下定决心学习，上手有点难，对着教程按键盘！不过上手之后，就好很多了。让鼠标见鬼去吧，现在如果开始专心写代码，基本上可以用不着鼠标了，这个太爽了，可以提高很多效率<br />
<img class="alignnone" title="vim" src="http://img04.taobaocdn.com/tps/i4/T1hbmWXdFmXXXXXXXX-540-500.jpg" alt="vim" width="540" /><br />
媲美程度相当于圣剑：<img style="height: 32px; width: 32px; border: 0px;padding:0;margin:0" src="http://dotadb.uuu9.com/UploadFiles/Dota/Item/SJCP.jpg" alt="" />拿上它，代表的就是牛B。可是。。不是每个人都能买得起的。。。</p>
<p>&nbsp;</p>
<p>每个人都有每个人的习惯，我在此列出来的只是自己使用过的编辑器，其实还有很多很犀利的编辑器，欢迎大家补充！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/%e5%89%8d%e7%ab%af%e5%bc%80%e5%8f%91%e5%b7%a5%e5%85%b7%e6%af%94%e8%be%83/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>如何提高前端的工作效率</title>
		<link>http://www.crazyleaves.com/%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%89%8d%e7%ab%af%e7%9a%84%e5%b7%a5%e4%bd%9c%e6%95%88%e7%8e%87/</link>
		<comments>http://www.crazyleaves.com/%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%89%8d%e7%ab%af%e7%9a%84%e5%b7%a5%e4%bd%9c%e6%95%88%e7%8e%87/#comments</comments>
		<pubDate>Mon, 20 Feb 2012 06:37:24 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[前端]]></category>
		<category><![CDATA[前端工具]]></category>
		<category><![CDATA[工作效率]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=105</guid>
		<description><![CDATA[工欲善其事，必先利其器。 最近换了个犀利的VIM编辑器，号称是编辑器里的神器，堪比诸葛连弩。用了个把星期了，使用起来虽然还是很不适应，但是真的很爽。和之前用的dw比起来工作效率相对来说已经有了很大的提高。 总结了一下我能想到的可以提高自己的工作效率的几个方面： 1、学习新知识， 新知识包括知识层面上的，当然，还可以是工具层面上的： css3，html5这些新技术还是必须要学习的，圆角，渐变，阴影等，都可以很快速的完成，可以节省很多时间。 工具层面上么，比如我现在使用的vim，又比如zencoding（实用简单的代码自动化工具）。 2、凡事预则立，不预则废 刚拿到一个项目，千万不能拿过来就做，这样看起来很抓紧，其实会在后面花费更多的时间去修改前面没有想到的问题。 我们在项目开始之前，必须搞清楚： 项目需求是什么？ 开发周期有多久？ 每个阶段该完成多少内容？ 将项目拆分，合理的安排各个阶段的任务，对整个项目的代码结构做一些合理分布，将页面模块化，这样才能更快的更好的去修改 3、 减少切换 其实人应该有3只手的，2只控制键盘，一只控制鼠标。干起活来，肯定能够迅猛如飞。在工作的时候，右手离开键盘到鼠标，再回来，这个动作在整个过程中得重复很多遍，相对的浪费了很多时间。现在，最现实的改变是，把双手留在键盘上。避免挪来挪去的浪费时间。 在这里就更要推荐vim了，传说vim的犀利之处就是，写一万行代码，双手不离开键盘一下！！这个觉得是真的！关于vim的教程么。。等我以后用熟了，再来分享。 先阶段么，能够用“快捷键”搞定的一律用“快捷键”，再找一些自动化、批处理的插件么。 合理布局一下桌面上大大小小的窗口。 在么，顺便加一台显示器，弄个双屏的，这边写代码，那边看效果，真心很爽得。 每节省一秒钟，就是一秒钟。 每一个“切换”步骤的小优化，累积起来，都是效率的大提升。 4、清理干扰 要让同事们了解自己的开发习惯：不着急的需求，请发邮件。 强调一次没用就强调第二次。 干掉3分钟跑过来一趟，打扰你的人群。 闭掉1分钟n++条信息的QQ群。 保持一种良好的，不被打断的编码状态。 总结 做前端的同学，除了要处处考虑各种版本浏览器的兼容性这个脑力劳动之外，最大的体力劳动就是，在代码视图重复的输入代码了。由于有死机造成代码丢失的阴影，我现在习惯性狂按ctrl+s，（当然了，自从改用了vim,我已经不按ctrl+s了，而改用:w来保存了。。一样的其实。。。）估计这样长期下去除了椎间盘突出，这两个键也突出了 总而言之，言而总之。。。 为了让这种痛苦少一点。。就提高效率吧。。]]></description>
			<content:encoded><![CDATA[<p>工欲善其事，必先利其器。<br />
最近换了个犀利的VIM编辑器，号称是编辑器里的神器，堪比诸葛连弩。用了个把星期了，使用起来虽然还是很不适应，但是真的很爽。和之前用的dw比起来工作效率相对来说已经有了很大的提高。</p>
<p>总结了一下我能想到的可以提高自己的工作效率的几个方面：</p>
<p><strong>1、学习新知识，</strong><br />
新知识包括知识层面上的，当然，还可以是工具层面上的：<br />
css3，html5这些新技术还是必须要学习的，圆角，渐变，阴影等，都可以很快速的完成，可以节省很多时间。<br />
工具层面上么，比如我现在使用的vim，又比如zencoding（实用简单的代码自动化工具）。<br />
<span id="more-105"></span></p>
<p><strong>2、凡事预则立，不预则废</strong><br />
刚拿到一个项目，千万不能拿过来就做，这样看起来很抓紧，其实会在后面花费更多的时间去修改前面没有想到的问题。<br />
我们在项目开始之前，必须搞清楚：<br />
项目需求是什么？<br />
开发周期有多久？<br />
每个阶段该完成多少内容？</p>
<p>将项目拆分，合理的安排各个阶段的任务，对整个项目的代码结构做一些合理分布，将页面模块化，这样才能更快的更好的去修改</p>
<p><strong>3、 减少切换</strong><br />
其实人应该有3只手的，2只控制键盘，一只控制鼠标。干起活来，肯定能够迅猛如飞。在工作的时候，右手离开键盘到鼠标，再回来，这个动作在整个过程中得重复很多遍，相对的浪费了很多时间。现在，最现实的改变是，把双手留在键盘上。避免挪来挪去的浪费时间。</p>
<p>在这里就更要推荐vim了，传说vim的犀利之处就是，写一万行代码，双手不离开键盘一下！！这个觉得是真的！关于vim的教程么。。等我以后用熟了，再来分享。</p>
<p>先阶段么，能够用“快捷键”搞定的一律用“快捷键”，再找一些自动化、批处理的插件么。</p>
<p>合理布局一下桌面上大大小小的窗口。<br />
在么，顺便加一台显示器，弄个双屏的，这边写代码，那边看效果，真心很爽得。<br />
每节省一秒钟，就是一秒钟。<br />
每一个“切换”步骤的小优化，累积起来，都是效率的大提升。</p>
<p><strong>4、清理干扰</strong><br />
要让同事们了解自己的开发习惯：不着急的需求，请发邮件。<br />
强调一次没用就强调第二次。</p>
<p>干掉3分钟跑过来一趟，打扰你的人群。<br />
闭掉1分钟n++条信息的QQ群。</p>
<p>保持一种良好的，不被打断的编码状态。</p>
<p><strong>总结</strong><br />
做前端的同学，除了要处处考虑各种版本浏览器的兼容性这个脑力劳动之外，最大的体力劳动就是，在代码视图重复的输入代码了。由于有死机造成代码丢失的阴影，我现在习惯性狂按ctrl+s，（当然了，自从改用了vim,我已经不按ctrl+s了，而改用:w来保存了。。一样的其实。。。）估计这样长期下去除了椎间盘突出，这两个键也突出了<br />
总而言之，言而总之。。。<br />
为了让这种痛苦少一点。。就提高效率吧。。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%89%8d%e7%ab%af%e7%9a%84%e5%b7%a5%e4%bd%9c%e6%95%88%e7%8e%87/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>template模板的应用</title>
		<link>http://www.crazyleaves.com/template%e6%a8%a1%e6%9d%bf%e7%9a%84%e5%ba%94%e7%94%a8/</link>
		<comments>http://www.crazyleaves.com/template%e6%a8%a1%e6%9d%bf%e7%9a%84%e5%ba%94%e7%94%a8/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 09:28:09 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[模板]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=89</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;在很久之前的项目中就用过了template的方法，不过当时只是依样画葫芦照着借用的，最近在学习过程中又看到了这个方法，就好好学习一下了。 &#160;&#160;&#160;&#160;我们平时JavaScript进行前端开发的时候，做的最多的事情，除了操作dom以外，就是围绕json数据的操作了。而数据操作最麻烦的就是用json生成dom对象了，通常我们会写一堆for,if之类的代码来支持data向view的转化, 这样的代码一般会像： html代码 &#60;ul id=&#34;list&#34;&#62; &#60;/ul&#62; JS代码 var data = [{name: 'Claire', sex: 'female', age: 18, flag: true}, {name: 'Mark', sex: 'male', age: 25, flag: true}, {name: 'Dennis', sex: 'male', age: 32, flag: false}, {name: 'Tracy', sex: 'female', age: 23, flag: true}, {name: 'Wane', sex: 'male', age: 18, flag: true}]; var html = ''; [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;在很久之前的项目中就用过了template的方法，不过当时只是依样画葫芦照着借用的，最近在学习过程中又看到了这个方法，就好好学习一下了。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;我们平时JavaScript进行前端开发的时候，做的最多的事情，除了操作dom以外，就是围绕json数据的操作了。而数据操作最麻烦的就是用json生成dom对象了，通常我们会写一堆for,if之类的代码来支持data向view的转化, 这样的代码一般会像：</p>
<p><span id="more-89"></span></p>
<p>html代码</p>
<pre class="wp-code-highlight prettyprint">
&lt;ul id=&quot;list&quot;&gt;

&lt;/ul&gt;
</pre>
<p>JS代码</p>
<pre class="wp-code-highlight prettyprint">
var data = [{name: 'Claire', sex: 'female', age: 18, flag: true},
   {name: 'Mark', sex: 'male', age: 25, flag: true},
   {name: 'Dennis', sex: 'male', age: 32, flag: false},
   {name: 'Tracy', sex: 'female', age: 23, flag: true},
   {name: 'Wane', sex: 'male', age: 18, flag: true}];
   var html = '';
   for (var i = 0; i &lt; data.length; i++) {
     var liHtml = &quot;&lt;li&gt; 年龄：&quot;+data[i].name +&quot;，性别：&quot;+ data[i].sex +&quot;，年龄：&quot;+data[i].age+&quot;&lt;/li&gt;&quot;
     html+= liHtml
   }
   document.getElementById(&quot;list&quot;).innerHTML = html;
</pre>
<p></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;最终生成的html就是这样的</p>
<pre class="wp-code-highlight prettyprint">
&lt;ul id=&quot;list&quot;&gt;
  &lt;li&gt; 年龄：Claire，性别：female，年龄：18&lt;/li&gt;
  &lt;li&gt; 年龄：Mark，性别：male，年龄：25&lt;/li&gt;
  &lt;li&gt; 年龄：Dennis，性别：male，年龄：32&lt;/li&gt;
  &lt;li&gt; 年龄：Tracy，性别：female，年龄：23&lt;/li&gt;
  &lt;li&gt; 年龄：Wane，性别：male，年龄：18&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;这样做，看似也不烦，但是随着数据结构越来越复杂，很快你就会发现代码越来越臃肿，而且html完全嵌入在js代码中，几乎不可维护，如果要修改，都必须修改js代码，风险较高。实际上，将展现逻辑同数据分开在服务器端脚本中是很容易的事情，因为服务器端脚本一般都支持模板技术。模板语言的好处是能用一种灵活、易扩展的方式来将展现标记（如html）、数据（如json）和控制代码（如javascript）结合起来。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;现在也有不少浏览器端用javascript实现的模板引擎，如extjs的xtemplate,，jTemplate，TrimPath等。实现的思路都一样：将一段定义好的模板代码（像 <% do something %>之类的）compile为js代码；然后将json data作为这段js代码的输入，最终产生一段需要的文本（如html）。</p>
<p>在这里我引用的KISSY的template模板，</p>
<p>JS代码</p>
<pre class="wp-code-highlight prettyprint">
KISSY.Template('Hello, {{name}}.').render({name: 'Frank'});
</pre>
<p>这里调用了kissy的template的组件，{{name}}就是需要替换的数据，render的就是数据data。这样我们就能够把data和html分开开处理了。</p>
<p>下面给出一个完整的例子，大家可以通过查看源码去看一下。</p>
<p><a href="http://www.crazyleaves.com/demo/stand_template.html" target="_blank" style="font-size:16px">点这里过去看源码</a></p>
<p>最后给出一个不错的template的网址：<br />
<a href="http://jsbin.com/exugah/9/edit#javascript,html,live" target="_blank">http://jsbin.com/exugah/9/edit#javascript,html,live</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/template%e6%a8%a1%e6%9d%bf%e7%9a%84%e5%ba%94%e7%94%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>全兼容渐变圆角阴影</title>
		<link>http://www.crazyleaves.com/%e5%85%a8%e5%85%bc%e5%ae%b9%e6%b8%90%e5%8f%98%e5%9c%86%e8%a7%92%e9%98%b4%e5%bd%b1/</link>
		<comments>http://www.crazyleaves.com/%e5%85%a8%e5%85%bc%e5%ae%b9%e6%b8%90%e5%8f%98%e5%9c%86%e8%a7%92%e9%98%b4%e5%bd%b1/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 08:22:06 +0000</pubDate>
		<dc:creator>YENN</dc:creator>
				<category><![CDATA[工作积累]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[全兼容]]></category>
		<category><![CDATA[圆角]]></category>
		<category><![CDATA[渐变]]></category>
		<category><![CDATA[阴影]]></category>

		<guid isPermaLink="false">http://www.crazyleaves.com/?p=83</guid>
		<description><![CDATA[看新闻得知微软在2014年将完全结束对xp系统的技术支持，那也就是说，以前的xp+office2003+ie6的组合将会很大程度的被减少，那基本上就是win7+office2010+ie9的全新组合，这是好事。。让万恶的ie6去****吧。。 额，学习新的技术让自己不落伍！ css3的技巧，代码就不上了，直接上demo，能看懂的人肯定知道怎么去看源码！！]]></description>
			<content:encoded><![CDATA[<p>看新闻得知微软在2014年将完全结束对xp系统的技术支持，那也就是说，以前的xp+office2003+ie6的组合将会很大程度的被减少，那基本上就是win7+office2010+ie9的全新组合，这是好事。。让万恶的ie6去****吧。。</p>
<p>额，学习新的技术让自己不落伍！<br />
<span id="more-83"></span><br />
css3的技巧，代码就不上了，直接上demo，能看懂的人肯定知道怎么去看源码！！</p>
<p><iframe width="500" height="500" scrolling=no frameborder=0 src="http://www.crazyleaves.com/demo/stand_css3_01.html"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.crazyleaves.com/%e5%85%a8%e5%85%bc%e5%ae%b9%e6%b8%90%e5%8f%98%e5%9c%86%e8%a7%92%e9%98%b4%e5%bd%b1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

