欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于javascript模塊加載技術(shù)的一些思考

 更新時間:2014年11月28日 17:19:17   投稿:mdxy-dxy  
這篇文章主要介紹了關(guān)于javascript模塊加載技術(shù)的一些思考 ,需要的朋友可以參考下

前不久有個網(wǎng)友問我在前端使用requireJs和seajs的問題,我當(dāng)時問他你們公司以前有沒有自己編寫的javascript庫,或者javascript框架,他的回答是什么都沒有,他只是聽說像requirejs和seajs是新東西新技術(shù),很有價值所以想用它。

  這位網(wǎng)友的問題引起了我對javascript模塊加載技術(shù)的思考,上篇文章我給出了自己寫的一個javascript庫的基本結(jié)構(gòu),其實寫這篇文章的一個起因就是因為我想使用requirejs或者seajs這樣的技術(shù)來重新設(shè)計我寫javascript庫的基本模型,當(dāng)我深入了解這個技術(shù)后,我發(fā)現(xiàn)使用模塊加載系統(tǒng)來解決把javascript庫里通用代碼和業(yè)務(wù)代碼解耦的問題,是不正確的,模塊加載系統(tǒng)的作用范圍是解決不同javascript庫之間的依賴問題,而不是幫助你去如何開發(fā)一個javascript庫。

  那么什么是javascript的模塊加載系統(tǒng)呢?

  模塊系統(tǒng)主要為了解決不同javascript庫里操作對象的命名沖突問題以及不同javascript庫之間依賴的問題,模塊加載系統(tǒng)是針對大型web前端應(yīng)用或者說是巨型的web前端應(yīng)用。

  一般巨型的web前端應(yīng)用頁面里,該頁面的功能非常豐富,業(yè)務(wù)非常龐雜,而且隨著時間推移,頁面的功能經(jīng)常會發(fā)生變遷,所以導(dǎo)致前端開發(fā)人員經(jīng)常要開發(fā)出針對新功能的功能模塊,但是實際業(yè)務(wù)里各個功能模塊之間的功能還有可能相互滲透,相互依賴的,關(guān)系錯綜復(fù)雜,當(dāng)頁面復(fù)雜后,各個前端庫之間的關(guān)系就出現(xiàn)很難管理和控制的問題,這個時候模塊加載系統(tǒng)才會派上用場。

  對于大多數(shù)程序員而言,能獨立承擔(dān)這么大web前端應(yīng)用的機會并不是太多,而開發(fā)中小型web前端應(yīng)用的機會會多的多,例如企業(yè)級的web項目,這樣的項目使用到的javascript庫的種類很少,各個庫的依賴關(guān)系很好控制,是沒有必要引入什么模塊管理系統(tǒng)的必要,就算很多中小型互聯(lián)網(wǎng)公司的網(wǎng)頁,估計也不會比企業(yè)級web應(yīng)用前端那么復(fù)雜,所以它的模塊之間或者說javascript庫之間的關(guān)系很好管理的。其實像上面這些中小應(yīng)用都是針對某些或某一個具體場景進行的,因此我個人覺得面對這樣的web前端項目我們最后能自己形成一個獨立的javascript庫,這個庫的特點應(yīng)該和jQuery這種類型的庫類似:一個主庫加上若干個插件庫的模式,主庫的目的是解決通用性的問題,它應(yīng)該是可以進行復(fù)用和遷移的,而插件庫的目的往往和業(yè)務(wù)代碼相關(guān)的,不過為了區(qū)別主庫和插件庫的作用域問題,所以我在庫里加上了命名空間的功能。

  Javascript模塊加載技術(shù)和hadoop的技術(shù)有些相同點,那就是它們都是針對超大型系統(tǒng)的技術(shù),它們只有在一定條件下才能發(fā)揮它們的作用,所以這些技術(shù)都是從大型互聯(lián)網(wǎng)公司推出出來,因為大型互聯(lián)網(wǎng)公司隨著應(yīng)用變大變復(fù)雜后必須要去解決的問題,當(dāng)你系統(tǒng)還是處于起步階段,這些技術(shù)的運用往往要謹(jǐn)慎,我們應(yīng)該找出最簡單最有效的方法解決我們實際問題,如果你覺得這個系統(tǒng)以后會越來越大,那么你應(yīng)該保留以后使用這些技術(shù)的接口,如果使用太早了,很有可能當(dāng)系統(tǒng)規(guī)模擴大后,你重構(gòu)代碼的代價會更高。

  對于模塊加載系統(tǒng),它最適合的場景是解決大型web前端應(yīng)用模塊之間的解耦的問題,如果我們只要新寫一個javascript文件就馬上使用模塊加載技術(shù),這個不是有點濫用技術(shù)的嫌疑了,我們運用某個技術(shù)之前不應(yīng)該只是考慮它怎么用,如何用,應(yīng)該還要想想使用它有沒有價值的問題。

  最后我想說的是,我覺得中小型web前端應(yīng)用到了生產(chǎn)部署,因為javascript并非最復(fù)雜,所以所有外部javascript文件都打包成一個javascript外部文件最好,這樣的好處就是減少了http請求個數(shù),使用模塊加載技術(shù)會讓你打包文件操作很麻煩,甚至無法做到(像requirejs和seajs的模塊都是以文件為單位的,每個模塊就是一個獨立文件),這和解決減少http目的是相悖的。

相關(guān)文章

  • js關(guān)于命名空間的函數(shù)實例

    js關(guān)于命名空間的函數(shù)實例

    這篇文章主要介紹了js關(guān)于命名空間的函數(shù),實例講述了namespace函數(shù)的使用技巧,需要的朋友可以參考下
    2015-02-02
  • js實現(xiàn)簡單的日歷顯示效果函數(shù)示例

    js實現(xiàn)簡單的日歷顯示效果函數(shù)示例

    這篇文章主要介紹了js實現(xiàn)簡單的日歷顯示效果函數(shù),結(jié)合完整實例形式分析了JavaScript實現(xiàn)的日歷功能相關(guān)原理與具體操作技巧,需要的朋友可以參考下
    2019-11-11
  • javascript實現(xiàn)自定義滾動條效果

    javascript實現(xiàn)自定義滾動條效果

    這篇文章主要為大家詳細(xì)介紹了javascript實現(xiàn)自定義滾動條效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JS控制靜態(tài)頁面之間傳遞參數(shù)獲取參數(shù)并應(yīng)用的簡單實例

    JS控制靜態(tài)頁面之間傳遞參數(shù)獲取參數(shù)并應(yīng)用的簡單實例

    下面小編就為大家?guī)硪黄狫S控制靜態(tài)頁面之間傳遞參數(shù)獲取參數(shù)并應(yīng)用的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • js 中 document.createEvent的用法

    js 中 document.createEvent的用法

    用該方法創(chuàng)建了 Event 對象以后,必須用上表中所示的初始化方法初始化對象。關(guān)于初始化方法的詳細(xì)信息,請參閱 Event 對象參考。
    2010-08-08
  • JavaScript實現(xiàn)跨瀏覽器的添加及刪除事件綁定函數(shù)實例

    JavaScript實現(xiàn)跨瀏覽器的添加及刪除事件綁定函數(shù)實例

    這篇文章主要介紹了JavaScript實現(xiàn)跨瀏覽器的添加及刪除事件綁定函數(shù),采用純javascript實現(xiàn)jquery的bind及unbind添加與刪除事件綁定的技巧,具有很好的瀏覽器兼容性,需要的朋友可以參考下
    2015-08-08
  • 微信小程序按鈕巧妙用法

    微信小程序按鈕巧妙用法

    這篇文章主要介紹了微信小程序按鈕巧妙用法,按鈕組件功能比?HTML?中的?button?按鈕豐富,通過?open-type?屬性可以調(diào)用微信提供的各種功能(客服、轉(zhuǎn)發(fā)、獲取用戶授權(quán)、獲取用戶信息等),需要的朋友可以參考下
    2022-12-12
  • JavaScript 中的輸出數(shù)據(jù)多種方式

    JavaScript 中的輸出數(shù)據(jù)多種方式

    在 JavaScript 中,不像 Java 等語言,它沒有任何打印或者輸出方法的,在js中通過使用4種方式來輸出數(shù)據(jù),本文通過實例代碼給大家詳細(xì)介紹,感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • javascript實現(xiàn)智能手環(huán)時間顯示

    javascript實現(xiàn)智能手環(huán)時間顯示

    這篇文章主要為大家詳細(xì)介紹了javascript實現(xiàn)智能手環(huán)時間顯示,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 淺談FastClick 填坑及源碼解析

    淺談FastClick 填坑及源碼解析

    這篇文章主要介紹了淺談FastClick 填坑及源碼解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03

最新評論