??????? 大名鼎鼎的Prototype.js? 估計(jì)大家都知道,可能都已經(jīng)用到了.最近項(xiàng)目中用到了1.3.1版本,我也隆重的推薦給我的同事.剛才下載了1.4.0看了一下,感覺(jué)有些失望.
??????? 一個(gè)面向?qū)ο蟮膉avascript框架
???????? Prototype這個(gè)javascript框架目標(biāo)是?? 更容易的開(kāi)發(fā)動(dòng)態(tài)的web應(yīng)用程序.重要提供 以class風(fēng)格的OO框架;可擴(kuò)展的AJAX支持,higher-order programming constructs,容易的操作DOM模型.
??????? 這是它的官方網(wǎng)站描述.現(xiàn)在打開(kāi)prototype.js 源代碼,更象一個(gè)大的Utils工具類(lèi).1.4更夸張,細(xì)小的功能都加了個(gè)函數(shù),不知道以后prototype.js怎么發(fā)展,如果這么沒(méi)特色發(fā)展下去, 有些擔(dān)憂(yōu).(畢竟從它代碼里學(xué)到不少,有點(diǎn)感情)
???????? 我自己隨便總結(jié)有幾個(gè)問(wèn)題:
1、Class.create提供了類(lèi)創(chuàng)建機(jī)制,但可惜沒(méi)有類(lèi)似java的package機(jī)制,太不完善了。Class.create實(shí)現(xiàn)也有些簡(jiǎn)單,我還不如function(){}呢。
2、簡(jiǎn)單的實(shí)現(xiàn)的AJAX功能,有個(gè)簡(jiǎn)單的數(shù)據(jù)綁定。AJAX技術(shù)大潮的來(lái)臨,人們?cè)鐚?duì)這么簡(jiǎn)單的實(shí)現(xiàn)沒(méi)什么興趣。早把眼光投向野心更大的dojo,dwr....了。
3、higher-order programming constructs,一直沒(méi)明白什么意思???
4、容易的操作DOM模型。實(shí)現(xiàn)了些可以跨瀏覽器的些代碼。比如事件處理,鼠標(biāo)位置等。
5、雖然實(shí)現(xiàn)跨瀏覽器代碼,但對(duì)瀏覽器要求較高
??? Microsoft Internet Explorer for Windows, version 6.0 and higher
??? Mozilla Firefox 1.0/Mozilla 1.7 and higher
??? Apple Safari 1.2 and higher
6、對(duì)服務(wù)器端支持不多,如dojo有webwork2.0支持,dwr也有服務(wù)器處理。 prototype就沒(méi)了,但它與RoR關(guān)系不錯(cuò).也利有弊吧。
7、基本沒(méi)有任何UI實(shí)現(xiàn),雖然有Rico等擴(kuò)展項(xiàng)目,但感覺(jué)效果不怎么樣。
8、感覺(jué)這個(gè)項(xiàng)目目標(biāo)不是太明確,如果只是個(gè)大的工具類(lèi),那我不期望它有新版本了,現(xiàn)有功能夠細(xì)的了。我不是說(shuō)大家不要用了。但作為開(kāi)源項(xiàng)目,希望走好。


Prototype.js優(yōu)點(diǎn)
1、新手很好的閱讀材料。
2、傳統(tǒng)B\s應(yīng)用程序好幫手,如果不需要復(fù)雜的AJAX功能,復(fù)雜的用戶(hù)體驗(yàn),能夠減少估計(jì)30%的javascript代碼.
3、Element,Form,Event等很多工具函數(shù)有很多方法太好了。
4、在prototype.js基礎(chǔ)上實(shí)現(xiàn)下拉菜單,樹(shù)控件,減少很多代碼。有時(shí)間我整理下放出來(lái)。

??

?