手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >jquery与prototype框架的详细对比
jquery与prototype框架的详细对比
摘要:以前做界面是用jquery的,现在因为要用许多ajax效果,改用了rails自带的prototype因为jquery用多了,换个框架也大同小...

以前做界面是用jquery的,现在因为要用许多ajax效果,改用了rails自带的prototype

因为jquery用多了,换个框架也大同小异,不过细节上有很多不同。。。

1.dom加载方面:

jquery有dom ready方法,推迟js函数的绑定知道dom树完成(如果没有这个功能,一些element的事件函数之类的绑定可能会出错):

$(document).ready(function(){});

但是prototype是没有的。。。得自己找非官方的扩展,不方便,这个基本的功能,这么重要的功能,不知道为啥迟迟不加到核心库

2.path查找,dom定位方面

jquery的dom查找和css定位一致,用过就感觉非常方便,这是他的一大亮点和优点

$('.func #select_all').click(function()

$(this).parent('div').parent('div').find('li .checkbox input:checkbox')

prototype只有查找单个dom对象方便--$(id)

比较麻烦的是把单个和数组分开了,如果找一个路径下的许多对象

得$$('div .right_contact'),这种风格仍然是定位某一类型的对象

而不是用路径查找,这方面不如jquery方便和概念一致

3.函数,事件绑定

举个例子,把class为right_contact的div绑定click高亮事件,prototype写法是:

复制代码 代码如下:

$$('div .right_contact').each(function(item){

item.observe('click', function(event){

new Effect.Highlight(item,{ duration: 2.0,startcolor: '#ffff99',endcolor: '#fffffff',restorecolor: '#fffffff' });

});

});

如果是jquery,简洁很多:

$('.right_contact').click(function(){

$(this).toggleClass('hilight');

})

我用过很多框架,印象最深刻的是一个叫hge game engine的框架,封装了大量的底层细节和实现方法,然后他说:you could create everything from a simple puzzle to advanced multilayered platformer or strategy without even thinking of any non game logic code

优秀的框架应该是让人集中注意到业务逻辑上而不是技术特性,设计模式上这方面,jquery比prototype优秀,最典型的例子就是如果要鼠标点击触发函数,prototype搞个大而全的observe方法,然后去注册click事件

而jquery就有item.click函数。。。observe是能包容万象,不过jquery这种为最常用的事件特地创建专有函数的做法,更能让人集中注意力到业务逻辑上。。。

【jquery与prototype框架的详细对比】相关文章:

jQuery实现表格行上移下移和置顶的方法

jQuery实现给页面换肤的方法

jQuery基于图层模仿五星星评价功能的方法

prototype 的说明 js类

jQuery实现限制textarea文本框输入字符数量的方法

jQuery实现自动滚动到页面顶端的方法

Jquery实现动态切换图片的方法

prototype class详解

JavaScript中reduce()方法的使用详解

javascript模拟评分控件实现方法

精品推荐
分类导航