国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

關于javascript模塊加載技術的一些思考

2024-05-06 16:11:12
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了關于javascript模塊加載技術的一些思考 ,需要的朋友可以參考下

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

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

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

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

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

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

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 肥城市| 隆回县| 柳江县| 达拉特旗| 三都| 正阳县| 鹰潭市| 额尔古纳市| 太仓市| 阿尔山市| 正蓝旗| 措勤县| 莱阳市| 聂荣县| 三江| 吉木乃县| 新民市| 和田县| 张家界市| 云安县| 杭锦后旗| 边坝县| 曲松县| 沾化县| 于田县| 沿河| 阿荣旗| 忻城县| 岳普湖县| 绩溪县| 南昌市| 沅陵县| 武冈市| 洪雅县| 东乡族自治县| 家居| 长垣县| 榕江县| 沛县| 临沭县| 平阳县|