關于javascript模塊加載技術的一些思考
來源:易賢網 閱讀:739 次 日期:2014-12-01 10:53:21
溫馨提示:易賢網小編為您整理了“關于javascript模塊加載技術的一些思考”,方便廣大網友查閱!

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

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

那么什么是javascript的模塊加載系統呢?

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

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

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

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

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

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

更多信息請查看IT技術專欄

更多信息請查看腳本欄目

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網