jquery与prototype框架的详细对比_jquery
May 16, 2016 pm 05:13 PM以前做界面是用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这种为最常用的事件特地创建专有函数的做法,更能让人集中注意力到业务逻辑上。。。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Explication détaillée des méthodes de référence jQuery : guide de démarrage rapide

Comment utiliser la méthode de requête PUT dans jQuery ?

Comment supprimer l'attribut height d'un élément avec jQuery ?

Conseils jQuery : modifiez rapidement le texte de toutes les balises a de la page

Utilisez jQuery pour modifier le contenu textuel de toutes les balises

Analyse approfondie : les avantages et les inconvénients de jQuery

Comprendre le rôle et les scénarios d'application de eq dans jQuery

Comment savoir si un élément jQuery possède un attribut spécifique ?
