個(gè)人覺得:mootools 更符合面向?qū)ο?,易擴(kuò)展,對于熟悉面向?qū)ο蟮?span href="tag.php?name=%B3%CC%D0%F2%D4%B1" onclick="tagshow(event)" class="t_tag">程序員來說很 棒。但 jquery 做小型網(wǎng)站更方便多了,插件也多。 現(xiàn)在常用的框架有Jquery,prototype,mootool,yui等,其他的框架都是非主流,有一 個(gè)數(shù)據(jù)很有意思,就是這幾種框架的 市場占有率,我覺得這個(gè)數(shù)據(jù)沒有太大意義,因?yàn)?br> 這幾種前端框架都有各自的針對性和特點(diǎn),每種框架都適合相應(yīng)規(guī)模的web項(xiàng)目,比如 prototype和 jquery適合中小網(wǎng)站開發(fā),mootool適合中型網(wǎng)站開發(fā),yui適合大規(guī)模 的web項(xiàng)目開發(fā),而小網(wǎng)站的數(shù)量要遠(yuǎn)大于門戶或sns這種大網(wǎng)站的, 因此,不論怎么 比較,jquery和prototype的使用數(shù)量都要超過mootool和yui。 在入門級開發(fā)者人群中,prototype是使用量最大的,因?yàn)樗鄬唵我恍?,這里的簡 單和jquery的簡潔不一樣,prototype也 算“老”一點(diǎn)的框架,而且很多js高手入門都 是從prototype開始的,因此也有很多wd對prototype有特殊的感情,畢 竟, prototype改變了我們對js的看法。它的很多設(shè)計(jì)思想也被沿用致其他框架中。但一個(gè) 框架是否優(yōu)秀不應(yīng)當(dāng)只看一面,更重要的,框架對瀏覽器的支 持、文檔、擴(kuò)展行、性 能、編碼風(fēng)格這些因素也在影響框架的使用者。prototype太基礎(chǔ)以至于對ie瀏覽器的版 本判斷很粗糙,它糟糕的文檔和擴(kuò)展性, 都是阻礙其在那些想深入學(xué)習(xí)js 的人群中更加 流行的因素。因此,如果想積累一些入門級的前端實(shí)踐 ,用prototype非常合適。 有人說jQuery是被設(shè)計(jì)用來改變你寫JavaScript的方法的。在這一方面jquery的確作的 很好,20行的Dom javascript語句在jquery里只需要2-3行就可以完成,語言的簡潔 簡直太吸引人了,尤其對于前端開發(fā)工程師這群多少有些代碼潔癖的人來說, 簡直美妙 絕倫,甚至忽視了其粗糙的面向?qū)ο蟮慕Y(jié)構(gòu)這一致命的缺點(diǎn)。當(dāng)我們過多的沉浸在代碼 簡潔的樂趣中無法自拔的時(shí)候,對更高級抽象的忽視往往阻擋住了我 們的視野。因此, jquery本身無法承擔(dān)龐大的網(wǎng)站架構(gòu)任務(wù),也只能在中小網(wǎng)站中搞一搞動(dòng)畫特效而已。 但這仍然無法阻止wd們對jquery的偏愛,只 要你有潔癖,那么你一定會喜歡jquery 的。 在面向?qū)ο蟮姆矫?,mootool的確作的不錯(cuò),軟件設(shè)計(jì)模式中的高內(nèi)聚和低耦合在 mootool中有良好的體現(xiàn)。文檔也很完整,但 mootool的占有率一直不高是一個(gè)很尷尬 的現(xiàn)象,作底端太多余,無法和jquery競爭,作高端又有點(diǎn)吃力,無法和yui競爭,給人 雞肋的感覺,就這 樣。 如果你想作門戶、如果你想作sns、如果你想作大型電子商務(wù)和電子政務(wù)網(wǎng)站,你大概只 有一個(gè)選擇,那就是yui,yui抽象出了比其他框架更復(fù) 雜的層次結(jié)構(gòu)、把模塊按照不同 的層次劃分,并定義層次之間模塊依賴關(guān)系,這種設(shè)計(jì)使得yui對萬行級代碼的管理游刃 有余,這種重設(shè)計(jì)輕開發(fā)的思想是yui 的核心之一,此外,yui不僅僅是js框架,他是js +css+規(guī)范的集合,必要的約束在團(tuán)隊(duì)協(xié)作項(xiàng)目中可以降低成本。其實(shí)yui本身也是團(tuán) 隊(duì)合作的產(chǎn) 物。在擴(kuò)展性方面,我覺得yui是所有前端框架作的最好的,ext就是選擇基 于yui進(jìn)行擴(kuò)展。相對來講,prototype和jquery顯然太小了。 總結(jié) 輕量級的選擇主要是mootools和jquery,由于它們的設(shè)計(jì)思想的不同,jQuery是追求 簡潔和高效,Mootools 除了追求這些目標(biāo)以外,其核心在于面向?qū)ο?,所以jQuery適 合于快速開發(fā),Mootools適合于稍大型和復(fù)雜的項(xiàng)目,其中需要面向?qū)ο蟮闹С?另 外,在Ajax的支持上,jQuery稍強(qiáng)一些;在Comet的支持上,jQuery有相關(guān)的插件, Mootools目前沒有,但是Comet的核心在于 服務(wù)器的支持,瀏覽器端的接口很簡單, 開發(fā)相關(guān)的插件很簡單。在面向?qū)ο蟮腏avascript Library中,mootools逐漸戰(zhàn)勝了 prototype(體積大,面向?qū)ο蟮脑O(shè)計(jì)不合理等),也包括script.acul.ous(基于 prototype,實(shí)際上就是prototype上的UI庫)。 因此,特定的框架有特定的使用范圍,在合適的項(xiàng)目上,相應(yīng)的框架都會發(fā)揮其應(yīng)有的 優(yōu)勢,因此,過分比較前端框架并得出熟優(yōu)熟劣來純粹是吃包了撐的,這和比較編程語 言那個(gè)好和操作系統(tǒng)那個(gè)好一樣沒有意義??偨Y(jié)至此只為加深對前端框架的印象和理 解,無他。 |
聯(lián)系客服