國(guó)內(nèi)優(yōu)秀web前端Javascript框架庫(kù):
創(chuàng)新互聯(lián)公司,為您提供重慶網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣、網(wǎng)站開(kāi)發(fā)設(shè)計(jì),對(duì)服務(wù)隧道混凝土攪拌車(chē)等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司成立于2013年,提供專(zhuān)業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶(hù),為客戶(hù)提供賞心悅目的作品。 與客戶(hù)共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!
Arale(支付寶) -
Como(盛大) -
EasyJs -
EdoJs -
DWZ -
JX(騰訊) -
JSI -
KISSY(淘寶) -
KindEditor -
Mass -
ModJS(騰訊) -
ModuleJS(騰訊) -
NEJ(網(wǎng)易) -
NJF -
Puerh(百姓網(wǎng)) -
QWrap(百度) -
SeaJS(淘寶) -
Tangram(百度) -
UEditor(百度) -
[img]Javascript框架是指以Javascript語(yǔ)言為基礎(chǔ)搭建的編程框架。
JavaScript框架如今正融入到屬于自己的Web和移動(dòng)應(yīng)用程序中,構(gòu)建后端API和豐富的前臺(tái)客戶(hù)端是一大趨勢(shì),而這些又多由JavaScript框架編寫(xiě)而成。
在開(kāi)發(fā)前臺(tái)界面時(shí)應(yīng)用API,便會(huì)更加熟悉API,也會(huì)對(duì)工作內(nèi)容了如指掌,當(dāng)應(yīng)用該項(xiàng)技術(shù)編寫(xiě)客戶(hù)端,編寫(xiě)頂級(jí)iPhone或者Android應(yīng)用程序就會(huì)變得非常容易。
在JavaScript框架出現(xiàn)之前,開(kāi)發(fā)人員只能在頁(yè)面上進(jìn)行jQuery操作。這種方式很容易引起開(kāi)發(fā)人員對(duì)編碼操作的困惑,而且也不易管理。
Backbone是最初的領(lǐng)跑者,提供了一個(gè)基本的結(jié)構(gòu)和組織以及開(kāi)發(fā)者友好的框架,如Angular和Ember。
擴(kuò)展資料:
javascript的特點(diǎn):
1、一種解釋性執(zhí)行的腳本語(yǔ)言。
同其他腳本語(yǔ)言一樣,javascript也是一種解釋性語(yǔ)言,其提供了一個(gè)非常方便的開(kāi)發(fā)過(guò)程。
2、一種基于對(duì)象的腳本語(yǔ)言。
其也被看作是一種面向?qū)ο蟮恼Z(yǔ)言,這意味著javascript能運(yùn)用其已經(jīng)創(chuàng)建的對(duì)象。因此,許多功能可以來(lái)自于腳本環(huán)境中對(duì)象的開(kāi)發(fā)方法 與腳本的相互作用。
3、一種簡(jiǎn)單弱類(lèi)型腳本語(yǔ)言。
javascript是一種基于java基本語(yǔ)句和控制流之上的簡(jiǎn)單而緊湊的設(shè)計(jì),從而對(duì)于使用者學(xué)習(xí)java或其他c語(yǔ)系的編程語(yǔ)言是一種非常好的過(guò)渡。
4、一種相對(duì)安全腳本語(yǔ)言。
javascript作為一種安全性語(yǔ)言,不被允許訪問(wèn)本地的硬盤(pán),不允許對(duì)網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過(guò)瀏覽器實(shí)現(xiàn)信息瀏覽或動(dòng)態(tài)交互。從而有效地防止數(shù)據(jù)的丟失或?qū)ο到y(tǒng)開(kāi)發(fā)的非法訪問(wèn)。
參考資料來(lái)源:百度百科-JavaScript框架
淺談js框架設(shè)計(jì) 在這個(gè)JavaScript框架隨處亂跑的時(shí)代,你是否考慮過(guò)寫(xiě)一個(gè)自己的框架?下面的內(nèi)容也許會(huì)有點(diǎn)幫助。
一個(gè)框架應(yīng)該包含哪些內(nèi)容?
1.語(yǔ)言擴(kuò)展
大部分現(xiàn)有的框架都提供了這部分內(nèi)容,語(yǔ)言擴(kuò)展應(yīng)當(dāng)是以ECMAScript為基礎(chǔ)進(jìn)行的,不應(yīng)當(dāng)依賴(lài)任何宿主環(huán)境,也就是說(shuō),作為一個(gè)框架的設(shè)計(jì)者,你應(yīng)當(dāng)保證你的語(yǔ)言擴(kuò)展可以工作在任何宿主環(huán)境中,而不是僅僅適合瀏覽器環(huán)境。你必須保證把它放到WScript,SpiderMonkeyShell,Rhino Shell,Adobe ExtendScript Toolkit甚至FlashActionScript等環(huán)境中都能正確的工作,舉個(gè)現(xiàn)實(shí)一點(diǎn)的例子setTimeout不可以出現(xiàn)在其中,你也不能用XMLHTTP加載腳本運(yùn)行,盡管它們看起來(lái)很貼近語(yǔ)言。保持這一部分的獨(dú)立性可以讓你方便的移植你的框架到其他宿主環(huán)境下?!?/p>
2.數(shù)據(jù)結(jié)構(gòu)和算法
JS本身提供的內(nèi)置對(duì)象非常有限,很多時(shí)候,框架應(yīng)該提供一些數(shù)據(jù)結(jié)構(gòu)和算法來(lái)幫助使用者更好的完成邏輯表達(dá)。但我認(rèn)為隨便翻本數(shù)據(jù)結(jié)構(gòu)或者算法書(shū)用JS挑幾個(gè)實(shí)現(xiàn)了加到框架中是不負(fù)責(zé)任的,多數(shù)數(shù)據(jù)結(jié)構(gòu)應(yīng)當(dāng)以庫(kù)的形式存在而非框架??蚣苤械臄?shù)據(jù)結(jié)構(gòu)應(yīng)該足夠常用而且實(shí)現(xiàn)不是非常復(fù)雜的,可以考慮的如集合、哈希表、鏈表、有序數(shù)組以及有序數(shù)組上的二分搜索。對(duì)JS來(lái)說(shuō),對(duì)象是一個(gè)天然的字符串哈希表,而集合很容易在哈希表上實(shí)現(xiàn),因此只需要處理掉Object的內(nèi)置方法,我們就可以實(shí)現(xiàn)一個(gè)高效的集合或哈希表。
3.DOM擴(kuò)展
JS主要應(yīng)用于Web開(kāi)發(fā),目前所有的框架也都用于瀏覽器環(huán)境,那么,瀏覽器端環(huán)境里重點(diǎn)中的重點(diǎn)DOM當(dāng)然也是框架的擴(kuò)展目標(biāo)了,如果一個(gè)框架不提供DOM的擴(kuò)展,那么其實(shí)基本沒(méi)什么用處了。需要注意的是,DOM擴(kuò)展也有w3c的標(biāo)準(zhǔn)可依,所以,不要嘗試為各種瀏覽器做一些奇怪的擴(kuò)展,比如FF下面的element們的prototype,框架的編寫(xiě)者應(yīng)當(dāng)無(wú)視它們。DOM擴(kuò)展的主要任務(wù)之一是兼容性,不同瀏覽器上的DOM實(shí)現(xiàn)相差很多,框架必須消除這些實(shí)現(xiàn)帶來(lái)的差異,提供統(tǒng)一的訪問(wèn)方式。當(dāng)然,做為框架,應(yīng)當(dāng)提供一些更為方便的接口,將宿主提供的DOM對(duì)象用js對(duì)象封裝是個(gè)不錯(cuò)的想法,但是同時(shí)這也很可能會(huì)造成內(nèi)存泄露,所以做這事之前,了解內(nèi)存泄露是必要的。實(shí)際上,自己想象的擴(kuò)展遠(yuǎn)不如W3C的設(shè)計(jì),比如如果你能更完整地實(shí)現(xiàn)XPath,你就能比JQuery做的更好。
4.AJAX擴(kuò)展
大部分現(xiàn)有框架出現(xiàn)的原因都是因?yàn)锳JAX,所以如果你想設(shè)計(jì)一個(gè)受歡迎的框架,AJAX是必須要做的。跟DOM擴(kuò)展很相似,AJAX擴(kuò)展的主要任務(wù)是兼容和內(nèi)存泄露,對(duì)AJAX的核心組件XMLHttpRequest對(duì)象,必須在IE6中使用ActiveX創(chuàng)建,而ActiveX又有各種版本,而隨之而來(lái)的內(nèi)存泄露和兼容性變得非常麻煩,比如:事件函數(shù)名大小寫(xiě)、this指向、事件函數(shù)的null賦值。處理好這些兼容性的基礎(chǔ)上,可以做進(jìn)一步的工作,提供一些常用的實(shí)現(xiàn)。應(yīng)該指出的是,除非你確定你提供的接口比原來(lái)的更好,否則不要改變?cè)瓉?lái)的XMLHttpRequest對(duì)象的接口,比如寫(xiě)一個(gè)Request函數(shù)來(lái)代替open和send,如果你不清楚W3C的專(zhuān)家們?yōu)槭裁催@么設(shè)計(jì),請(qǐng)不要把他們想象成傻瓜。我想自己另外寫(xiě)一個(gè)兼容且內(nèi)存安全的XMLHttpRequest加入到自己框架的命名空間里,使它從外部看上去跟W3C描述的XMLHttpRequest一模一樣是不錯(cuò)的辦法,對(duì)XMLHttpRequest我認(rèn)為唯一可以考慮的修改是提供onsuccess事件。當(dāng)然針對(duì)一些復(fù)雜功能的AJAX擴(kuò)展也是可行的,比如HTMLHttpRequest類(lèi)似的擴(kuò)展可以讓AJAX初學(xué)者喜歡你的框架。
5.效果
時(shí)間效果是最能刺激用戶(hù)神經(jīng)的,漸隱、緩動(dòng)、滑動(dòng)、顏色漸變這些都很不錯(cuò),其實(shí)技術(shù)難度也不是很高。拖動(dòng)效果則是瀏覽器中一個(gè)很重要的效果,用鼠標(biāo)事件來(lái)模擬本來(lái)很容易,不過(guò)兼容和setCapture也是很麻煩的事情。這一部分內(nèi)容量力而為就可以了。
7.腳本管理
因?yàn)榇蠹曳浅O矚gC++風(fēng)格的include或者JAVA風(fēng)格的import,很多框架提供了基于AJAX的腳本管理,不過(guò)同步加載的效率問(wèn)題是巨大的。之前我們?cè)?jīng)作過(guò)各種嘗試,希望找到一個(gè)瀏覽器中不用XMLHTTP加載外部js的方法,但是最后得出的結(jié)論是:不可能。
關(guān)于這個(gè),略微思考就可以知道,Java C++ C#都是編譯型語(yǔ)言,include 和import都是編譯期處理,在js中做到類(lèi)似的事情是不太可能的。為了實(shí)現(xiàn)類(lèi)似的功能,我想我們可以利用服務(wù)端程序或者編寫(xiě)一個(gè)文本工具來(lái)實(shí)現(xiàn)。
YUI將所有的js文件依賴(lài)關(guān)系提取出來(lái)的做法是可行的,不過(guò)這不能算是include的實(shí)現(xiàn)方式了,維護(hù)依賴(lài)關(guān)系不是一件很簡(jiǎn)單的事情。
8.控件
EXT的成功告訴我們:提供優(yōu)質(zhì)的控件才是框架的王道。你不能指望優(yōu)質(zhì)的擴(kuò)展會(huì)吸引更多使用者。多數(shù)人只關(guān)心如何快速完成手邊的工作。當(dāng)然不是所有框架都要提供這部分內(nèi)容。控件好壞取決于能力和美工,不過(guò)至少要保證框架里的控件不會(huì)內(nèi)存泄露。
框架設(shè)計(jì)的若干原則:
1.不要做多余的事
對(duì)這框架設(shè)計(jì)來(lái)說(shuō),我認(rèn)為一個(gè)非常必要的原則就是不要做多余的事情,舉個(gè)極端的的例子:
function add(a,b)
{
return a+b;
}
這樣的代碼如果出現(xiàn)在框架中,就是個(gè)十足的笑話(huà)。不過(guò)大多數(shù)時(shí)候,事情不是那么明顯,很多框架試圖用某種形式在JS中"實(shí)現(xiàn)"OOP,但是實(shí)際上,JS本身是OO的(ECMA262中明確指出來(lái)的,不像某些人所說(shuō)是基于對(duì)象云云)只是有一些語(yǔ)法跟Java等語(yǔ)言不同。那么顯然這些OOP的"實(shí)現(xiàn)"其實(shí)是跟上面的例子一樣的道理。另一個(gè)例子是Array.prototype.clone
Array.prototype.clone=function(){
return this.slice();
}
2.慎用prototype擴(kuò)展
很多框架利用修改原生對(duì)象的prototype來(lái)做語(yǔ)言擴(kuò)展,但我認(rèn)為應(yīng)當(dāng)小心地看待這件事,毫無(wú)疑問(wèn)這將造成一定的命名污染,你無(wú)法保證框架的使用者或者與你的框架共存的其他框架不會(huì)使用同樣的名字來(lái)完成其他的事情。特別需要注意的是,Object和Array這兩個(gè)對(duì)象的prototype擴(kuò)展格外的危險(xiǎn),對(duì)Object來(lái)說(shuō),如果Object被修改,那么框架的使用者將無(wú)法創(chuàng)建一個(gè)未被修改的干凈的對(duì)象,這是一個(gè)致命的問(wèn)題,尤其如果你的使用者喜歡用forin來(lái)反射一個(gè)對(duì)象的屬性。Array.prototype修改的危險(xiǎn)來(lái)自js一個(gè)不知有意還是無(wú)意的小小設(shè)計(jì),對(duì)原生的Array來(lái)說(shuō),任何情況下for和forin的遍歷結(jié)果是相同的,而因?yàn)闊o(wú)法控制自定義的屬性是不可枚舉的,任何Array.prototype的修改都會(huì)破壞這種特性。一方面,我認(rèn)為不應(yīng)當(dāng)推薦用forin遍歷數(shù)組,這其中包含著錯(cuò)誤的語(yǔ)義。另一方面,框架的設(shè)計(jì)者必須尊重這些使用者,因?yàn)閷?duì)于ECMA所定義的語(yǔ)法而言,它是正確的做法。其中包含著這樣一個(gè)簡(jiǎn)單的事實(shí):假如你的框架中修改了Array.prototype,那么一些之前能正確工作的代碼變得不可正確工作。
直接修改prototype看上去非常誘人,但是在考慮它之前應(yīng)當(dāng)先考慮兩種可能的方案:
(1)函數(shù)
提供一個(gè)以對(duì)象為第一個(gè)參數(shù)的函數(shù)比如 Array.prototype.each =
function ForEach(arr,f)
{
if(arr instanceof Array)/*...*/;
}
(2)繼承
以return的形式繼承一個(gè)內(nèi)置對(duì)象 比如考慮Array.prototype.each=
function ArrayCollection()
{
var r=Array.apply(this,arguments);
r.each=function(){/*......*/};
return r;
}
套用一句名言,不要修改原生對(duì)象的prototype,除非你認(rèn)為必要。不過(guò)修改原生對(duì)象的prototype確實(shí)有一些特殊的用途(就是"必要的情況"),主要體現(xiàn)在2點(diǎn):文字量支持和鏈?zhǔn)奖磉_(dá)。舉一個(gè)例子可以體現(xiàn)這兩點(diǎn):
var cf=function f(a,b,c,d)
{
/*........*/
}.$curry(3,4).$curry(5).$run();
如果希望實(shí)現(xiàn)類(lèi)似上面的表達(dá)方式,可能就需要擴(kuò)展Function.prototype,權(quán)衡一下的話(huà),如果你認(rèn)為命名污染的代價(jià)是值得的,那么也是可以提供給使用者的。
一個(gè)比較討巧的辦法是把選擇權(quán)利交給使用者,提供一個(gè)擴(kuò)展器:
function FunctionExtend()
{
this.$curry=function(){/*......*/};
this.$run=function(){/*......*/};
}
如果用戶(hù)喜歡可以FunctionExtend.apply(Function.prototype); 如果不喜歡擴(kuò)展 則可以
var r=function(){/*......*/};
FunctionExtend.apply(r);
3.保持和原生對(duì)象的一致
不知你有沒(méi)有注意到,內(nèi)置對(duì)象Function Array等都有這樣的性質(zhì):
new Function()跟Function的結(jié)果完全一致(String Number Boolean這種封裝型對(duì)象沒(méi)有這樣的性質(zhì))
如果框架中提供的類(lèi)也具有這種性質(zhì),會(huì)是不錯(cuò)的選擇。這僅僅是一個(gè)例子,如果你注意到了其他細(xì)節(jié),并且讓框架中的類(lèi)和原生對(duì)象保持一致,對(duì)使用者來(lái)說(shuō)是非常有益的。
4.尊重語(yǔ)言 尊重用戶(hù)
編寫(xiě)框架應(yīng)該尊重依賴(lài)的語(yǔ)言環(huán)境,在對(duì)原有的元素修改之前,首先應(yīng)該考慮到原來(lái)的合理性,任何語(yǔ)言的原生環(huán)境提供的都是經(jīng)過(guò)了精心設(shè)計(jì)的,在任何修改之前,至少應(yīng)該考慮這幾點(diǎn):效率、命名規(guī)范、必要性、與其他功能是否重復(fù)。如果你沒(méi)有付出至少跟語(yǔ)言的設(shè)計(jì)者相當(dāng)?shù)墓ぷ髁?,你的做法就是欠考慮的。
編寫(xiě)框架也應(yīng)該尊重用戶(hù)的所有習(xí)慣,將編寫(xiě)者的喜好強(qiáng)加給使用者并不是框架應(yīng)該做的事情??蚣軕?yīng)該保證大部分在沒(méi)有框架環(huán)境下能運(yùn)行的代碼都能在框架下正常工作,這樣用戶(hù)不必為了使用你的框架而修改原有的代碼。
5.規(guī)范命名和使用命名空間
減少命名污染可以讓你的框架跟其他框架更好地共存。很多框架使用了命名空間來(lái)管理,這是良好的設(shè)計(jì)。命名應(yīng)該是清晰且有實(shí)際意義的英文單詞,如前面3所述,為了保持和原生對(duì)象的一致,命名規(guī)則最好貼近原生對(duì)象,比如類(lèi)名第一字母大寫(xiě),方法名用駝峰命名。捎帶一提prototype中的$實(shí)在是非常糟糕的設(shè)計(jì),無(wú)法想象$出現(xiàn)的目的僅僅是為了讓使用者少寫(xiě)幾個(gè)字母。這種事情應(yīng)該交給你的用戶(hù)在局部代碼中使用
目前來(lái)看,JS框架以及一些開(kāi)發(fā)包和庫(kù)類(lèi)有如下幾個(gè),Dojo 、Scriptaculous 、Prototype 、yui-ext 、Jquery 、Mochikit、mootools 、moo.fx
Dojo (JS library and UI component ):
Dojo是目前最為強(qiáng)大的j s框架,它在自己的Wiki上給自己下了一個(gè)定義,dojo是一個(gè)用JavaScript編寫(xiě)的開(kāi)源的DHTML工具箱。dojo很想做一個(gè)“大一統(tǒng)”的 工具箱,不僅僅是瀏覽器層面的,野心還是很大的。Dojo包括ajax, browser, event, widget等跨瀏覽器API,包括了JS本身的語(yǔ)言擴(kuò)展,以及各個(gè)方面的工具類(lèi)庫(kù),和比較完善的UI組件庫(kù),也被廣泛 應(yīng)用在很多項(xiàng)目中,他的UI組件的特點(diǎn)是通過(guò)給html標(biāo)簽增加tag的方式進(jìn)行擴(kuò)展,而不是通過(guò)寫(xiě)JS來(lái)生成,dojo的API模仿Java類(lèi)庫(kù)的組織 方式。 用dojo寫(xiě)Web OS可謂非常方便。dojo現(xiàn)在已經(jīng)4.0了,dojo強(qiáng)大的地方在于界面和特效的封裝,可以讓開(kāi)發(fā)者快速構(gòu)建一些兼容標(biāo)準(zhǔn)的界面。
優(yōu)點(diǎn):庫(kù)相當(dāng)完善,發(fā)展時(shí)間也比較長(zhǎng),功能強(qiáng)大,據(jù)說(shuō)利用dojo的io.bind()可以實(shí)現(xiàn)comet,看見(jiàn)其功能強(qiáng)大非一般,得到IBM和SUN的支持
缺點(diǎn):文件體積比較大,200多KB,初次下載相當(dāng)慢,此外,dojo的類(lèi)庫(kù)使用顯得不是那么易用,j s語(yǔ)法增強(qiáng)方面不如prototype。
Prototype (JS OO library):
是一個(gè)非常優(yōu)雅的JS庫(kù),定義了JS的面向?qū)ο髷U(kuò)展,DOM操作API,事件等等,以prototype為核心,形成了一個(gè)外圍的各種各樣 的JS擴(kuò)展庫(kù),是相當(dāng)有前途的JS底層框架,值得推薦,感覺(jué)也是現(xiàn)實(shí)中應(yīng)用最廣的庫(kù)類(lèi)(RoR集成的AJAX JS庫(kù)),之上還有 Scriptaculous 實(shí)現(xiàn)一些JS組件功能和效果。
優(yōu)點(diǎn):基本底層,易學(xué)易用,甚至是其他一些js特效開(kāi)發(fā)包的底層,體積算是最小的了。
缺點(diǎn):如果說(shuō)缺點(diǎn),可能就是功能是他的弱項(xiàng)
Scriptaculous (JS UI component based on prototype):
Scriptaculous是基于prototype.js框架的JS效果。包含了6個(gè)js文件,不同的文件對(duì)應(yīng)不同的js效果,所以說(shuō),如果底層用 prototype的話(huà),做js效果用Scriptaculous那是再合適不過(guò)的了,連大名鼎鼎的digg都在用他,可見(jiàn)不一般
優(yōu)點(diǎn):基于prototype是最大的優(yōu)點(diǎn),由于使用prototype的廣泛性,無(wú)疑對(duì)用戶(hù)書(shū)錦上添花,并且在《ajax in action》中就拿Scriptaculous來(lái)講述js效果
缺點(diǎn):剛剛興起,需要時(shí)間的磨練
yui-ext (JS UI component):
基于Yahoo UI的擴(kuò)展包yui-ext是具有CS風(fēng)格的Web用戶(hù)界面組件 能實(shí)現(xiàn)復(fù)雜的Layout布局,界面效果可以和backbase媲美,而且使用純javascript代碼開(kāi)發(fā)。真正的可編輯的表格Edit Grid,支持XML和Json數(shù)據(jù)類(lèi)型,直接可以遷入grid。許多組件實(shí)現(xiàn)了對(duì)數(shù)據(jù)源的支持,例如動(dòng)態(tài)的布局,可編輯的表格控件,動(dòng)態(tài)加載的Tree 控件、動(dòng)態(tài)拖拽效果等等。1.0 beta版開(kāi)始同Jquery合作,推出基于jQuery的Ext 1.0,提供了更多有趣的功能。
優(yōu)點(diǎn):結(jié)構(gòu)化,類(lèi)似于java的結(jié)構(gòu),清晰明了,底層用到了Jquery的一些函數(shù),使整合使用有了選擇,最重要的一點(diǎn)是界面太讓讓人震撼了。
缺點(diǎn):太過(guò)復(fù)雜,整個(gè)界面的構(gòu)造過(guò)于復(fù)雜。
Jquery :
jQuery是一款同prototype一樣優(yōu)秀js開(kāi)發(fā)庫(kù)類(lèi),特別是對(duì)css和XPath的支持,使我們寫(xiě)js變得更加方便!如果你不是個(gè)js高手又想寫(xiě)出優(yōu) 秀的js效果,jQuery可以幫你達(dá)到目的!并且簡(jiǎn)介的語(yǔ)法和高的效率一直是jQuery追求的目標(biāo),
優(yōu)點(diǎn):注重簡(jiǎn)介和高效,js效果有yui-ext的選擇,因?yàn)閥ui-ext 重用了很多jQuery的函數(shù)
缺點(diǎn):據(jù)說(shuō)太嫩,歷史不悠久。
Mochikit :
MochiKit自稱(chēng)為一個(gè)輕量級(jí)的js框架。MochiKit 主要受到 Python 和 Python 標(biāo)準(zhǔn)庫(kù)提供的很多便利之處的啟發(fā),另外還緩解了瀏覽器版本之間的不一致性。其中的 MochiKit.DOM 尤其方便,能夠以比原始 JavaScript 更友好的方式處理 DOM 對(duì)象。MochiKit.DOM 大部分都是針對(duì) XHTML 文檔定制的,如果與 MochiKit 和 Ajax 結(jié)合在一起,使用 XHTML 包裝的微格式尤其方便。Mochikit可以直接對(duì)字符串或者數(shù)字格式化輸出,比較實(shí)用和方便。它還有自己的 js 代碼解釋器
優(yōu)點(diǎn):MochiKit.DOM這部分很實(shí)用,簡(jiǎn)介也是很突出的
缺點(diǎn):輕量級(jí)的缺點(diǎn)
mootools :
MooTools是一個(gè)簡(jiǎn)潔,模塊化,面向?qū)ο蟮腏avaScript框架。它能夠幫助你更快,更簡(jiǎn)單地編寫(xiě)可擴(kuò)展和兼容性強(qiáng)的JavaScript代碼。Mootools跟prototypejs相類(lèi)似,語(yǔ)法幾乎一樣。但它提供的功能要比prototypejs多,而且更強(qiáng)大。比如增加了動(dòng)畫(huà)特效、拖放操作等等。
優(yōu)點(diǎn):可以定制自己所需要的功能,可以說(shuō)是prototypejs的增強(qiáng)版。
缺點(diǎn):不大不小,具體應(yīng)用具體分析
moo.fx :
moo.fx是一個(gè)超級(jí)輕量級(jí)的javascript特效庫(kù)(7k),能夠與prototype.js或mootools框架一起使用。它非常快、易于使用、跨瀏覽器、符合標(biāo)準(zhǔn),提供控制和修改任何HTML元素的CSS屬性,包括顏色。它內(nèi)置檢查器能夠防止用戶(hù)通過(guò)多次或瘋狂點(diǎn)擊來(lái)破壞效果。moo.fx整體采用模塊化設(shè)計(jì),所以可以在它的基礎(chǔ)上開(kāi)發(fā)你需要的任何特效。
優(yōu)點(diǎn):小塊頭有大能耐
缺點(diǎn):這么小了,已經(jīng)不錯(cuò)了
《JavaScript開(kāi)發(fā)框架權(quán)威指南》百度網(wǎng)盤(pán)pdf最新全集下載:
鏈接:
?pwd=gbvq 提取碼: gbvq
簡(jiǎn)介:JavaScript開(kāi)發(fā)框架quanwei指南涵蓋了在開(kāi)發(fā)過(guò)程中常用的各種JavaScript工具,以幫助讀者在大量流行的JavaScript工具中做選擇。全書(shū)分為16章,從開(kāi)發(fā)工具、模塊加載器、客戶(hù)端框架、服務(wù)端框架數(shù)據(jù)庫(kù)交互、通信、管理控制流和其他有用框架等幾個(gè)方面,涵蓋了Bower、Grunt、Yeoman、PM2、RequireJS、Browserify、Knockout、AngularJS、Kraken、Mach、Mongoose、Knex、Bookshelf、Faye、Q、Async.js、Underscore和 Lodash等框架和庫(kù)。全書(shū)涵蓋了客戶(hù)端和服務(wù)器端的開(kāi)發(fā),通過(guò)細(xì)致的講解、詳細(xì)的代碼示例,闡明了這些工具的用法。 ?