JavaScript模組化規範

來源:互聯網
上載者:User

JavaScript模組化規範主要遵循CommonJS和AMD規範。   CommonJS規範-伺服器端JavaScript規範 Node.js是一個伺服器端JavaScript項目,採用了CommonJS標準實現其模組系統。 CommonJS中採用一個全域require方法來載入模組,主要由原生模組module來實現和完成,該模組在啟動時已經被載入。 模組主要分為兩類:原生模組,檔案模組。 1.原生模組 原生模組也是Node.js中最核心的模組。原生模組在Node.js原始碼編譯的時候編譯進了二進位執行檔案,載入的速度最快。 Node.js中存在許多原生模組,例如:http,net,os,path,fs, module等等,其引用方式為var fs = require('fs'); 2.檔案模組 檔案模組是動態載入的,載入速度比原生模組慢。但是Node.js對原生模組和檔案模組都進行了緩衝,在第二次require該模組時,是不會有重複開銷。 檔案模組可細分為3類。這三類檔案模組以檔案尾碼來區分,Node.js會根據尾碼名來決定載入方法。 .js。通過fs模組同步讀取js檔案並編譯執行。 .node。通常為npm安裝的第三方模組。 .json。讀取檔案,調用JSON.parse解析載入。 雖然Node.js使用require方法引入模組的方式看似簡單,但內部的載入卻並不簡單,且其中的優先順序也不一樣。   AMD規範-瀏覽器端JavaScript規範 CommonJS中模組存放在本地,使用同步方式載入模組,其載入時間基本相當於磁碟IO時間,這不會存在問題,但是如果環境是瀏覽器,則檔案的載入受制於網路因素,如果網路載入比較慢,則可導致瀏覽器處於假死狀態,因此瀏覽器端只能採用非同步載入模組的方式。 AMD:Asynchronous Module Definition(非同步模組定義)。它採用非同步方式載入模組,模組的載入不影響它後面語句的運行。所有依賴這個模組的語句,都定義在一個回呼函數中,等到載入完成之後,這個回呼函數才會運行。 AMD也採用require()語句載入模組,但是不同於CommonJS,它要求兩個參數:require([module], callback); 第一個參數[module],是一個數組,裡面的成員就是要載入的模組;第二個參數callback,則是載入成功之後的回呼函數。目前,主要有兩個Javascript庫實現了AMD規範:require.js和curl.js。 require.js採用AMD規範實現模組載入,其採用define函數來定義。define函數接受兩個參數,第一個參數為依賴數組,第二個參數為待定義的模組函數。如果沒有相依模組,則第一個參數也可以省略。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.