<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>寒风</title>
    <description></description>
    <link>http://hanfeng.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>JSCL 简介</title>
        <author>hanfeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hanfeng.javaeye.com">hanfeng</a>&nbsp;
          链接：<a href="http://hanfeng.javaeye.com/blog/65742" style="color:red;">http://hanfeng.javaeye.com/blog/65742</a>&nbsp;
          发表时间: 2007年03月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <h2>一、设计思想</h2><ul>    <li>开放性框架，轻松集成常见的第三方 js 和 ajax 代码。（不重复发明轮子，只做别人没做的或做的不好的） </li>    <li>无侵入性，不需要修改第三方代码，即可直接使用在 JSCL 里。（向 Spring 学习） </li>    <li>充分利用 javascript 语言本身的特点。比如用 js 文件做配置文件，而不是用 xml ；用 URI 来描述组件包路径，而不采用类 java 格式。（轻量级，高性能，简单实现） </li></ul><h2>二、定义</h2><ul>    <li><span style="FONT-WEIGHT: bold">应用开发者：</span>使用 JSCL 进行应用系统开发的人。 </li>    <li><span style="FONT-WEIGHT: bold">组件开发者：</span>为 JSCL 添加组件或引入第三方组件的人。 </li>    <li><span style="FONT-WEIGHT: bold">JSCL 的目标用户：</span>应用开发者和组件开发者。 </li></ul><h2>二、特色</h2><h3>1、轻松管理和使用复杂依赖关系的 js 组件</h3><p>JSCL 让<span style="FONT-WEIGHT: bold">应用开发者</span>只关心自己要用哪些组件，而不必知道这个组件依赖哪些文件（依赖关系由<span style="FONT-WEIGHT: bold">组件开发者</span>事先定义）。</p><p>例如：menu组件需要导入menu.js，并且依赖common.js、poslib.js、scrollbutton.js，还需要根据风格定义引入相应的css文件</p><p>一般使用方式和 JSCL 方式比较如下：</p><p>缺省风格，一般方式</p><div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"><div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;common.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;poslib.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;scrollbutton.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;menu.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">link&nbsp;</span><span style="COLOR: #ff0000">rel</span><span style="COLOR: #0000ff">=&quot;stylesheet&quot;</span><span style="COLOR: #ff0000">&nbsp;href</span><span style="COLOR: #0000ff">=&quot;theme/default/public.css&quot;</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">=&quot;text/css&quot;</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">link&nbsp;</span><span style="COLOR: #ff0000">rel</span><span style="COLOR: #0000ff">=&quot;stylesheet&quot;</span><span style="COLOR: #ff0000">&nbsp;href</span><span style="COLOR: #0000ff">=&quot;theme/default/scrollbutton.css&quot;</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">=&quot;text/css&quot;</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">link&nbsp;</span><span style="COLOR: #ff0000">rel</span><span style="COLOR: #0000ff">=&quot;stylesheet&quot;</span><span style="COLOR: #ff0000">&nbsp;href</span><span style="COLOR: #0000ff">=&quot;theme/default/menu.css&quot;</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">=&quot;text/css&quot;</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span></div></div><p>JSCL 方式</p><div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"><div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;jscl/jscl.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_91_125_Open_Image" onclick="this.style.display='none'; document.getElementById('_91_125_Open_Text').style.display='none'; document.getElementById('_91_125_Closed_Image').style.display='inline'; document.getElementById('_91_125_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_91_125_Closed_Image" onclick="this.style.display='none'; document.getElementById('_91_125_Closed_Text').style.display='none'; document.getElementById('_91_125_Open_Image').style.display='inline'; document.getElementById('_91_125_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #0000ff">&gt;</span><span id="_91_125_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_91_125_Open_Text"><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />jscl.loadModule(</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&quot;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">jscl/gui/menu</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&quot;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">);<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">&nbsp;<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span></div></div><p>Office风格，一般方式</p><div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"><div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;common.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;poslib.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;scrollbutton.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;menu.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">link&nbsp;</span><span style="COLOR: #ff0000">rel</span><span style="COLOR: #0000ff">=&quot;stylesheet&quot;</span><span style="COLOR: #ff0000">&nbsp;href</span><span style="COLOR: #0000ff">=&quot;theme/office/public.css&quot;</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">=&quot;text/css&quot;</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">link&nbsp;</span><span style="COLOR: #ff0000">rel</span><span style="COLOR: #0000ff">=&quot;stylesheet&quot;</span><span style="COLOR: #ff0000">&nbsp;href</span><span style="COLOR: #0000ff">=&quot;theme/office/scrollbutton.css&quot;</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">=&quot;text/css&quot;</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">link&nbsp;</span><span style="COLOR: #ff0000">rel</span><span style="COLOR: #0000ff">=&quot;stylesheet&quot;</span><span style="COLOR: #ff0000">&nbsp;href</span><span style="COLOR: #0000ff">=&quot;theme/office/menu.css&quot;</span><span style="COLOR: #ff0000">&nbsp;type</span><span style="COLOR: #0000ff">=&quot;text/css&quot;</span><span style="COLOR: #ff0000">&nbsp;</span><span style="COLOR: #0000ff">/&gt;</span></div></div><p>JSCL 方式</p><div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"><div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #ff0000">&nbsp;src</span><span style="COLOR: #0000ff">=&quot;jscl/jscl.js&quot;</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" id="_91_151_Open_Image" onclick="this.style.display='none'; document.getElementById('_91_151_Open_Text').style.display='none'; document.getElementById('_91_151_Closed_Image').style.display='inline'; document.getElementById('_91_151_Closed_Text').style.display='inline';" align="top" alt="" /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" id="_91_151_Closed_Image" onclick="this.style.display='none'; document.getElementById('_91_151_Closed_Text').style.display='none'; document.getElementById('_91_151_Open_Image').style.display='inline'; document.getElementById('_91_151_Open_Text').style.display='inline';" align="top" alt="" style="DISPLAY: none" /></span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">script&nbsp;</span><span style="COLOR: #ff0000">type</span><span style="COLOR: #0000ff">=&quot;text/javascript&quot;</span><span style="COLOR: #0000ff">&gt;</span><span id="_91_151_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">...</span><span id="_91_151_Open_Text"><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" alt="" />jscl.theme.set(</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&quot;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">office</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&quot;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">);<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />jscl.loadModule(</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&quot;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">jscl/gui/menu</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">&quot;</span><span style="COLOR: #000000; BACKGROUND-COLOR: #f5f5f5">);<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">script</span><span style="COLOR: #0000ff">&gt;</span></div></div><p>&nbsp;</p><h3>2、标签化组件使用</h3><p>在 JSCL 标准组件体系中，学习 dojo 的设计思路，优化 WebFX 方式的组件 Setup 过程。</p><p>在html代码中以标签形式声明可视化组件，JSCL可以自动完成组件对象的创建和绑定。</p><div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"><div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div&nbsp;</span><span style="COLOR: #ff0000">jsclType</span><span style="COLOR: #0000ff">=&quot;tabpane&quot;</span><span style="COLOR: #ff0000">&nbsp;id</span><span style="COLOR: #0000ff">=&quot;tabpane1&quot;</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div&nbsp;</span><span style="COLOR: #ff0000">jsclType</span><span style="COLOR: #0000ff">=&quot;tabpage&quot;</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">span&nbsp;</span><span style="COLOR: #ff0000">jsclType</span><span style="COLOR: #0000ff">=&quot;tab&quot;</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">tab1</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">span</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;......<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">div&nbsp;</span><span style="COLOR: #ff0000">jsclType</span><span style="COLOR: #0000ff">=&quot;tabpage&quot;</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">span&nbsp;</span><span style="COLOR: #ff0000">jsclType</span><span style="COLOR: #0000ff">=&quot;tab&quot;</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">tab2</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">span</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;......<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">&gt;</span></div></div><p>或</p><div style="BORDER-RIGHT: windowtext 0.5pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 5.4pt; BACKGROUND: #e6e6e6; PADDING-BOTTOM: 4px; BORDER-LEFT: windowtext 0.5pt solid; WIDTH: 95%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: windowtext 0.5pt solid"><div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">jscl:tabpane&nbsp;</span><span style="COLOR: #ff0000">id</span><span style="COLOR: #0000ff">=&quot;tabpane1&quot;</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">jscl:tabpage</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">jscl:tab</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">tab1</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">jscl:tab</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;......<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">jscl:tabpage</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">jscl:tabpage</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">jscl:tab</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">tab1</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">jscl:tab</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;......<br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" />&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">jscl:tabpage</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">jscl:tabpane</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br /><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" alt="" /></span></div></div><h2>三、组织结构</h2><h3><span style="FONT-WEIGHT: bold">模块：</span></h3><p><strong><span style="FONT-WEIGHT: bold"><strong>JSCL 核心模块：</strong></span></strong>提供模块加载方法支持 <br /><span style="FONT-WEIGHT: bold">JSCL 服务器支持：</span>提供 Ajax 框架连接接口。 <br /><span style="FONT-WEIGHT: bold">JSCL Scope: </span>提供 application、window 等 JavaScript 生命周期对象容器。 <br /><span style="FONT-WEIGHT: bold">JSCL 事件库：</span>提供跨浏览器事件处理机制和自定义事件处理支持。与服务器支持模块联合，实现服务器端事件注册侦听框架。 <br /><span style="FONT-WEIGHT: bold">JSCL 标准组件体系：</span>jscl内置的面向对象的js组件体系。 <br /><span style="FONT-WEIGHT: bold">JSCL 扩展组件支持：</span>对已有第三方js组件的支持：</p><ul>    <li>兼容 cvicse-commons 标签库的 HTML 原型工具 </li>    <li>dojo 组件支持 </li>    <li>JQuery 组件支持 </li>    <li>YUI-Ext 组件支持 </li>    <li>WebFx 系列组件支持 </li></ul><p>&nbsp;</p><br /><br /><p id="TBPingURL"></p>
          <br/>
          <span style="color:red;">
            <a href="http://hanfeng.javaeye.com/blog/65742#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 24 Mar 2007 13:02:00 +0800</pubDate>
        <link>http://hanfeng.javaeye.com/blog/65742</link>
        <guid>http://hanfeng.javaeye.com/blog/65742</guid>
      </item>
      <item>
        <title>JSCL （JavaScript Component Library） 的由来</title>
        <author>hanfeng</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://hanfeng.javaeye.com">hanfeng</a>&nbsp;
          链接：<a href="http://hanfeng.javaeye.com/blog/65743" style="color:red;">http://hanfeng.javaeye.com/blog/65743</a>&nbsp;
          发表时间: 2007年03月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>很早就接触 javascript 了，2003年时才开始在项目中真正进行 js 代码开发。当时手中攒了大量技巧性代码，又有公司积累的代码。通过使用发现，js 代码非常零散，也没有统一的代码风格和编写规范，许多代码在一起使用时容易发生冲突，从而萌生了开发一个 js 代码管理工具的想法。</p><p>2004年一个项目的需求分析阶段，需要编写界面原型，于是利用这次机会编写了 JSL （java scripr library）。当时正好在51js上看到了 jsvm，并被其思想所吸引。但由于时间原因，当时来不及把项目需要的 js 代码和 css 风格都移到 jsvm 上使用，而且 jsvm 比较难学习，不能用来让需求分析人员编写界面原型。但 jsvm 启发了我，并很快写出了 JSL 的核心 _import&nbsp; 函数。但后来因为项目开发比较紧张，JSL 也就止于原型工具阶段，没有什么大的发展。</p><p>随着公司内部技术升级，构件库越来越完善。Ajax技术浪潮的来临，我忽然觉得 JSL 应该可以做的更好，所以我开始了 JSCL （JavaScript Component Library） 的构思。</p><br /><br /><p id="TBPingURL"></p>
          <br/>
          <span style="color:red;">
            <a href="http://hanfeng.javaeye.com/blog/65743#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 24 Mar 2007 11:28:00 +0800</pubDate>
        <link>http://hanfeng.javaeye.com/blog/65743</link>
        <guid>http://hanfeng.javaeye.com/blog/65743</guid>
      </item>
  </channel>
</rss>