JS库选择

现今流行的JS库各有各的功能,这些功能大致分为三大类:
       I、DOM的访问、遍历和操作;
       II、语言扩展、事件处理、AJAX、JSON和XML处理;
       III、界面组件;
       IV、动画效果。
       Dojo(http://dojotoolkit.com):覆盖了全部四个功能,这个库分为core、dijit、dojox三个部分,可按需要添加。
       Prototype(http://prototypejs.org):它提供了功能I和II。这个库可以说是所有JS库中最流行、应用最广泛的,很多JS库都是建立在它的基础上,而且,Prototype已经被集成到ROR中,据说也可能会成为JavaScript下个版本的语言核心部分。Prototype是我JS编程的必备工具,几乎每个用到JS的页面都会把它加进去。我也是从这个库开始接触面向对象JavaScript的。Prototype社区和邮件列表也非常活跃,时时刻刻都有开发小组中的人在“值班”,我以前碰到过的难题和疑问都在这个社区中得到解决,同时深深感叹于外国程序员的工作效率和热情。
       jQuery(http://jquery.com):是第一个真正突出了方法链作用的JS库,提供了不同于Prototype风格的JavaScript写法。要说功能,也和Prototype差不多,亮点其实还是方法链,这也使得操作DOM时,代码更紧凑而又不影响可读性。这个库现在也非常流行,我因为JavaScript的写作风格原因,还没有深入接触这个库,但初学过jQuery,已经让我感到,它也会象Prototype一样成为我的JS必备工具。
       YUI(http://developer.yahoo.com/yui):初次接触YUI时,感觉到它很大,大到令人望而却步(第一次想在项目中使用它,就是因为它大,吓得我没敢用)。YUI正如其名,主要提供了功能I和III。它主要采用的是传统的JavaScript写作风格,但通过命名空间很好的组织了代码。如果使用YUI而感觉它的命名空间很复杂的话,可以为这些命名空间创建别名对象。这个库可以使你创建丰富的WEB界面,抛开复杂的命名空间,用起来还是很不错的。
       Mootools(http://mootools.net):主要提供了动画(百叶窗、拖拽等)、AJAX等功能,它的一个很有意思的特性是,可同时为多个元素添加动画效果。这个库我只是通过demo觉得很可用。还有就是,它是我第一个接触到的提供压缩格式的JS库。
       Script.aculo.us( http://script.aculo.us ):提供了丰富的动画效果和一些界面组件,是最早流行的效果库,使用简单,容易上手,让我这看见Photoshop就头疼的人能轻易的制造出界面特效来。它就是建立在Prototype的基础上。
       ExtJS(http://extjs.com):它原来的基础就是YUI.Ext,如果觉得YUI复杂的话,就用它吧。
       还有很多优秀的JS库,但没用过就不敢在这里评价了。
       我的选择依据是:
       简化JS代码,使代码写起来更漂亮、更易读、更好维护的JS库一般是不可少的,Prototype、jQuery两者选其一就行,看你喜欢哪种风格的写法。什么?都不喜欢,就喜欢传统风格的,那就俩都别用。其实,这两个库真正吸引我的不是AJAX,能解决跨浏览器的问题,才是最最最关键的。Prototype是我最喜爱的,除了Java、Spring、AJAX,它是第四个给我震动最大的“朋友”了。
       创建丰富的界面可以选择ExtJS,简单好用,但YUI能提供的似乎更丰富些。
       想做动画特效,Script.aculo.us是首选,Mootools能提供的不多(最新版本没看过,不知道啥样了)。
       想要功能I-IV全能的,Dojo啊。如果觉得Dojo不能完全满足你,可以考虑其它JS库的组合,但在实际应用中要注意命名冲突的问题。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自己写的一个网页开发常用效果与框架,可以自定义导出自己想要的部分。 1.通过帮助文档help.html查看所有效果与使用方法。 2.通过config.html配置符合你需要并导出js; 内容包含如下: A:效果类; 1.事件-同时兼容手机与pc的3种事件(start、move、end); 2.tab选项卡-各种切换6种; 3.电商产品主图-横向与纵向2种; 4.放大镜-电商主图放大镜、图鼠标悬停旁边出现放大版图效果各一个; 5.跑马灯-文字或图片不断档可支持鼠标悬停时停止; 6.仿alert弹窗-可以自定义样式,手机版pc版个一种; 7.列表下拉加载更多-伪数据加载与ajax异步加载个一种; 8.折叠菜单一个; 9.banner图效果-7种包含手机上支持手指滑动的; 10.时间轴-控制1种; 11.自定义滚动条-横向、纵向各一种; 12.临时禁用滚动条-禁用与启用方法各一个,也能禁用手机滚动条,同时解决px滚动条占用宽度问题。 13.图表等比例-使图片始终保持设定比例缩放等供3种不同形式; 14.回到顶部-点击回到浏览器顶部; 15.漂浮窗-小漂浮窗广告; 16.图集展示-偶尔能用到; 17.滚屏效果-手指上下滑动或鼠标滚轮滚动切换页面,可自己配一些动效!!!!!!; 18.常用表单验证; 19.左滑删除; 20.复选框全选与取消选中; 21.内容拖动!!!!!!; 22.dom输入; 23.单例定时器; 24.ios软键盘弹出fixed定位问题处理!!!!!!; B:架构类; 1.流程控制-主要解决多个ajax调用依赖问题; 2.面向对象的class方法-方便定义类与集成类; 3.require-实现模块化开发,简单实用; 提示:用!!!!!!标注结尾的在某些场景下可能出现bug;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值