成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript 框架分類

elina / 3448人閱讀

摘要:注本文摘自司徒正美編著的框架設(shè)計(jì)一書(shū)。如果是從內(nèi)部架構(gòu)與理念劃分,目前框架可以劃分為類。第種就是具有明確分層架構(gòu)的框架。類型的判定必不可少,常見(jiàn)形式是系列。選擇器是現(xiàn)代框架的標(biāo)配。許多框架非常重視操作。

  

注:本文摘自司徒正美編著的《JavaScript框架設(shè)計(jì)》一書(shū)。

如果是從內(nèi)部架構(gòu)與理念劃分,目前JavaScript框架可以劃分為5類。

第1種

出現(xiàn)的是以命名空間為導(dǎo)向的類庫(kù)或框架,如創(chuàng)建一個(gè)數(shù)組用new Array(),生成一個(gè)對(duì)象用new Object(),完全的Java風(fēng)格,因此我們就可以以某一對(duì)象為根,不斷為它添加對(duì)象屬性或二級(jí)對(duì)象屬性來(lái)組織代碼,金字塔般地壘疊起來(lái)。代表作如早期的YUIEXT。

第2種

出現(xiàn)的是以類工廠為導(dǎo)向的框架,如著名的Prototype,還有mootools、Base2Ten。它們基本上除了最基本的命名空間,其他模塊都是一個(gè)由類工廠衍生出來(lái)的類對(duì)象。尤其是mootools 1.3,把所有類型都封裝成Type類型。

第3種

就是以jQuery為代表的以選擇器為導(dǎo)向的框架,整個(gè)框架或庫(kù)主體是一個(gè)特殊類數(shù)組對(duì)象,方便集化操作——因?yàn)檫x擇器通常是一下子選擇到N個(gè)元素節(jié)點(diǎn),于是便一并處理了。jQuery包含了幾樣了不起的東西:“無(wú)new實(shí)例化”技術(shù),$(expr)就是返回一個(gè)實(shí)例,不需要顯式地new出來(lái);get first set all訪問(wèn)規(guī)則:數(shù)據(jù)緩存系統(tǒng)。這樣就可以復(fù)制節(jié)點(diǎn)的事件了。此外,IIFE(Immediately-Invoked Function Expression)也被發(fā)掘出來(lái)。

第4種

就是以加載器串聯(lián)起來(lái)的框架,它們都有復(fù)數(shù)個(gè)JavaScript文件,每個(gè)JavaScript文件都以固定規(guī)則編寫(xiě)。其中最著名的莫過(guò)于AMD模塊化是JavaScript走向工業(yè)化的標(biāo)志。《Unix編程藝術(shù)》列舉的眾多“金科玉律”的第一條就是模塊,里面有言——“要編寫(xiě)復(fù)雜軟件又不至于一敗涂地的唯一方法,就是用定義清晰的接口把若干簡(jiǎn)單模塊組合起來(lái),如此一來(lái),多數(shù)問(wèn)題只會(huì)出現(xiàn)在局部,那么還有希望對(duì)局部進(jìn)行改進(jìn)或優(yōu)化,而又不至于牽動(dòng)全身”。許多企業(yè)內(nèi)部框架都基本采取這種架構(gòu),如DojoYUIkissy、qwrapmass等。

第5種

就是具有明確分層架構(gòu)的MV*框架。首先是JavaScript MVC(現(xiàn)在叫CanJS)、backbonejs、spinejs,然后更符合前端實(shí)際的MVVM框架,如knockout、ember、angular、avalonwinjs。在MVVM框架中,原有DOM操作被聲明式綁定取代了,由框架自行處理,用戶只需專注于業(yè)務(wù)代碼。

下面是有關(guān)框架特征的結(jié)論。

對(duì)基本數(shù)據(jù)類型的操作是基礎(chǔ),如jQuery就提供了trim、camelCaseeach、map等方法,對(duì)Prototype.js等侵入式框架則是在原型上添加camelize等方法。

類型的判定必不可少,常見(jiàn)形式是isXXX系列。

選擇器、domReadyAjax是現(xiàn)代框架的標(biāo)配。

DOM操作是重中之重,節(jié)點(diǎn)的遍歷、樣式的操作、屬性操作也屬于它的范疇,是否細(xì)分就看框架的規(guī)模了。

brower sniff已過(guò)時(shí),feature detect正被應(yīng)用。不過(guò)特性偵測(cè)還是有局限性,如果針對(duì)于某個(gè)瀏覽器版本的渲染Bug、安全策略或某些Bug的修正,還是要用到瀏覽器嗅探。但它應(yīng)該獨(dú)立成一個(gè)模塊或插件,移除框架的核心。

現(xiàn)在主流的事件系統(tǒng)都支持事件代理。

數(shù)據(jù)的緩存與處理,目前瀏覽器也提供data-*屬性進(jìn)行這方面的工作,但不太好用,需要框架的進(jìn)一步封裝。

動(dòng)畫(huà)引擎,除非你的框架像Prototype.js那樣擁有像script.aculo.us這樣頂級(jí)的動(dòng)畫(huà)框架做后盾,最好也加上。

插件的易開(kāi)發(fā)和擴(kuò)展性。

提供諸如Deferred這樣處理異步的解決方案。

即使不專門(mén)提供一個(gè)類工廠,也應(yīng)該存在一個(gè)名為extendmixin的方法對(duì)對(duì)象進(jìn)行擴(kuò)展。jQuery雖然沒(méi)有類工廠,但在jQuery UI中也不得不增加一個(gè),可見(jiàn)其重要性。

自從jQuery出來(lái)一個(gè)名為noConflict的方法,新興的框架都帶此方法,以求狹縫中生存。

許多框架非常重視Cookie操作。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/85376.html

相關(guān)文章

  • JavaScript 框架分類

    摘要:注本文摘自司徒正美編著的框架設(shè)計(jì)一書(shū)。如果是從內(nèi)部架構(gòu)與理念劃分,目前框架可以劃分為類。第種就是具有明確分層架構(gòu)的框架。類型的判定必不可少,常見(jiàn)形式是系列。選擇器是現(xiàn)代框架的標(biāo)配。許多框架非常重視操作。 注:本文摘自司徒正美編著的《JavaScript框架設(shè)計(jì)》一書(shū)。 如果是從內(nèi)部架構(gòu)與理念劃分,目前JavaScript框架可以劃分為5類。 第1種 出現(xiàn)的是以命名空間為導(dǎo)...

    blankyao 評(píng)論0 收藏0
  • 2017 年崛起的 JS 項(xiàng)目

    摘要:通過(guò)對(duì)比各項(xiàng)目過(guò)去個(gè)月在上新增數(shù)量,來(lái)評(píng)估其在年度的受關(guān)注程度,進(jìn)而選出年度領(lǐng)域崛起的明星項(xiàng)目。也許正因?yàn)樯鲜鲎詈笠稽c(diǎn),在中國(guó)擁有大量的擁躉。不僅被中國(guó)最大的電商平臺(tái)阿里巴巴使用,也獲得了與這些公司青睞。 共 4741 字,讀完需 8 分鐘,速讀 2 分鐘。我有幸參與了該項(xiàng)目的部分中文版翻譯、校對(duì)工作,感謝 Sacha Grief,Micheal Ramberu 的統(tǒng)計(jì)整理,以及 Fr...

    gaara 評(píng)論0 收藏0
  • 前端文檔收集

    摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫(xiě)高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問(wèn)性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...

    jsbintask 評(píng)論0 收藏0
  • 前端文檔收集

    摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線緩存簡(jiǎn)介系列編寫(xiě)高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問(wèn)性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類 - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...

    muddyway 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<