国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jquery與prototype框架的詳細(xì)對比

2024-05-06 15:55:50
字體:
供稿:網(wǎng)友
這篇文章主要是對jquery與prototype框架進(jìn)行了詳細(xì)的對比介紹,需要的朋友可以過來參考下,希望對大家有所幫助

以前做界面是用jquery的,現(xiàn)在因?yàn)橐迷S多ajax效果,改用了rails自帶的prototype

因?yàn)閖query用多了,換個框架也大同小異,不過細(xì)節(jié)上有很多不同。。。

1.dom加載方面:

jquery有dom ready方法,推遲js函數(shù)的綁定知道dom樹完成(如果沒有這個功能,一些element的事件函數(shù)之類的綁定可能會出錯):

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

但是prototype是沒有的。。。得自己找非官方的擴(kuò)展,不方便,這個基本的功能,這么重要的功能,不知道為啥遲遲不加到核心庫

2.path查找,dom定位方面

jquery的dom查找和css定位一致,用過就感覺非常方便,這是他的一大亮點(diǎn)和優(yōu)點(diǎn)

$('.func #select_all').click(function()
$(this).parent('div').parent('div').find('li .checkbox input:checkbox')

prototype只有查找單個dom對象方便--$(id)

比較麻煩的是把單個和數(shù)組分開了,如果找一個路徑下的許多對象

得$$('div .right_contact'),這種風(fēng)格仍然是定位某一類型的對象

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

3.函數(shù),事件綁定
舉個例子,把class為right_contact的div綁定click高亮事件,prototype寫法是:

復(fù)制代碼 代碼如下:


$$('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的框架,封裝了大量的底層細(xì)節(jié)和實(shí)現(xiàn)方法,然后他說:you could create everything from a simple puzzle to advanced multilayered platformer or strategy without even thinking of any non game logic code

優(yōu)秀的框架應(yīng)該是讓人集中注意到業(yè)務(wù)邏輯上而不是技術(shù)特性,設(shè)計(jì)模式上這方面,jquery比prototype優(yōu)秀,最典型的例子就是如果要鼠標(biāo)點(diǎn)擊觸發(fā)函數(shù),prototype搞個大而全的observe方法,然后去注冊click事件
而jquery就有item.click函數(shù)。。。observe是能包容萬象,不過jquery這種為最常用的事件特地創(chuàng)建專有函數(shù)的做法,更能讓人集中注意力到業(yè)務(wù)邏輯上。。。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 稻城县| 湟源县| 汝城县| 上饶市| 大竹县| 镇巴县| 辉县市| 伊通| 大同市| 盐源县| 同心县| 漳浦县| 平山县| 灌南县| 马尔康县| 龙山县| 德惠市| 赣州市| 云林县| 靖江市| 玛曲县| 隆回县| 于都县| 九江县| 庄浪县| 明星| 新民市| 维西| 临江市| 普格县| 全南县| 南开区| 和田县| 双柏县| 迁安市| 徐水县| 通河县| 和田县| 岗巴县| 洪雅县| 池州市|