快速业务通道

采用JSI封装、集成第三方类库 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18

采用JSI封装、集成第三方类库

时间:2011-03-06

Java的成功,离不开它那个庞大的类库,不单是sun的类库,很多细节的实现都取自第三方(如xml解析采用Apache的实现)。

JSI暂时不算公共API,但是我们可以集成其他成熟的类库,同时隔离他们的依赖,隔离各个脚本的执行上下文,消除命名冲突的危险。

这里我们详细介绍一个复杂一点的实例:类似Windows XP文件浏览器左侧的滑动折叠面板(任务菜单)效果。

我们先集成Scriptaculous Effect类库,并且在这个基础上对一个面板折叠效果做一个简单的封装,展示框架的类库封装功能。

1。集成Scriptaculous类库:

这里我们不做过多介绍,详细情况请参考集成实战;我们发布的版本中已经把Scriptaculous放置于us.aculo.script包中,您可以把这些作为系统内置的类库使用。

2。编写我们的折叠面板函数(example/effect.js):

/** * 滑动面板实现. * 当指定元素可见时,将其第一个子元素向上滑动至完全被遮掩(折叠)。 * 当指定元素不可见时,将其第一个子元素向下滑动至完全显示(展开)。 */ function slidePanel(panel){   panel = $(panel);   if(panel.style.display==''none''){    //调用Scriptaculous Effect的具体滑动展开实现    new Effect.SlideDown(panel);   }else{    //调用Scriptaculous Effect的具体滑动闭合实现    new Effect.SlideUp(panel);   } }

3。编写包定义脚本(example/__$package.js):

添加slidePanel(滑动面板控制)函数

this.addScript("effect.js","slidePanel",null);

给effect.js脚本添加对us.aculo.script包中effects.js脚本的装载后依赖this.addScriptDependence("effect.js", "us/aculo/script/effects.js",false);

4。在网页上运用上面的类库:

<html>   <head>   <title>重用aculo Effect脚本实例</title>   <link rel="stylesheet" type="text/css" href="/styles/default.css" />   <script src="/scripts/boot.js"></script>   <script>    $import("example.slidePanel");   </script>   </head>   <body>    <div class="menu_header"      onclick="slidePanel(''menu_block1'')">      面板 1    </div>    <div class="menu_block" id="menu_block1">     <ul>      <li>text1</li>      <li>text2</li>      <li>text3</li>     </ul>    </div> </body> </html>

onclick="slidePanel(''menu_block1'')"这个事件函数将在我们点击面板标题时触发,然后会调用Scriptaculous Effect去实现我们需要的滑动折叠功能。

采用JSI封装、集成第三方类库(2)

时间:2011-03-06

java可以随意的使用第三方类库,可是JavaScript却没那么幸运,随着类库的丰富,烦杂的依赖关系和可能的命名冲突将使得类库的发展越来越困难。程序的易用性也将大打折扣。

命名冲突的危险无形的增加你大脑的负担;随着使用的类库的增加,暴露的依赖也将随之增加,这是复杂度陡增的极大祸根,将使得系统越来越复杂,越来越难以控制。潜在的问题越来越多,防不胜防。

JSI的出现,可以解决上述问题,我们建议类库的开发者将自己类库的依赖终结在自己手中,避免依赖扩散,以提高类库的易用性。

同样使用上面的例子,假如我们想抛开JSI,实现同样的功能,那我们的页面代码将是(类

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号