91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CommonJS,AMD,CMD規范

發布時間:2020-07-01 08:06:44 來源:網絡 閱讀:330 作者:Sikana 欄目:web開發


1. Javascript 先天缺乏模塊的功能。在其他高級語言中,Java有類文件,Python有import機制,Ruby有require,PHP有include和require,而Javascript 則需要依靠<script>標簽引入代碼,當腳本多的時候,會顯得雜亂無章。

2. 針對以上問題,CommonJS應運而生。CommonJS為Javascript制定了一個美好愿景:能夠在任何地方運行!(Not just for browser), CommonJS希望彌補Javascript沒有標準的缺陷(沒有模塊系統,標準庫較少,沒有標準接口,缺乏包管理系統),可以編寫大型應用,如服務器端Javascript,命令行工具,桌面圖形界面應用程序,混合應用等。

3. CommonJS規范涵蓋:

模塊、二進制Buffer, 字符集編碼,I/O流,進程環境,文件系統,套接字,web服務器網管接口,包管理等。

4. Node.JS遵循CommonJS規范,推進了CommonJS的發展.

5. CommonJS主要是為了JS在后端的表現制定的,不適合前端。為什么這么說呢?

前后端Javascript分別被擱置在HTTP的兩端,二者扮演的角色不同:



瀏覽器端Javascript

服務器端Javascript

代碼的執行需要經歷從同一服務器端分發到多個客戶端執行相同代碼需要多次執行

瓶頸

在于帶寬

在于CPU和內存資源

代碼加載方式

需要通過網絡加載代碼

從磁盤加載代碼(二者速度不在一個數量級上)

6. 于是AMD出現了,Asynchronous Module Definition. 異步模塊定義。

        它就主要為前端JS的表現制定規范

AMD規范只有一個API,其模塊定義如下:

define(id?,dependencies?,factory); //id,dependencies可選,factory內容就是實際代碼的內容

a. Id:模塊標識,可以省略,這里的模塊標識指的是自己,即整個文件。所以當id省略的時候,就相當于定義了一個匿名模塊,這時候模塊文件名就是 模塊標識。e.g.模塊文件放在a.js中,那么a就是模塊名。

b.  dependencies: 依賴的模塊。AMD規范要在聲明模塊的時候指定所有的依賴,并且還要當做形參傳到factory里面。例如:

define(['dep1', 'dep2'], function ( dep1, dep2  ){ … });

 

一個不包含依賴關系的例子:

define(function(){

var exports = {};

exports.method = function(){ ...};

return exports;

...

});


c. define函數中不難想到define函數具有異步性。它在執行時首先會異步去調用第二個參數中列出的依賴模塊,當所有模塊被載入完成后,如果第三個參數是一個回調函數則執行。

d. Node.js中,沒有看到define將模塊包起來,是因為Node實現了隱式包裝(即在對模塊進行 編譯時,node會對模塊進行頭尾包裝,以隔離各個模塊文件,防止變量污染)。

e. requireJS就是實現了AMD規范。


7. CMD規范由國內的玉伯提出,與AMD規范的區別在于定義模塊和依賴引入的部分。風格更接近于Node.可以看看Sea.js

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青海省| 阿瓦提县| 祁阳县| 左云县| 洮南市| 淳化县| 新邵县| 手游| 富源县| 高密市| 崇义县| 林芝县| 秭归县| 贵南县| 深水埗区| 焦作市| 海淀区| 佳木斯市| 南充市| 措勤县| 贵德县| 九龙城区| 盐山县| 丰台区| 临汾市| 吉木萨尔县| 新邵县| 长沙县| 东阳市| 大连市| 呼图壁县| 双流县| 凤城市| 甘泉县| 濉溪县| 阿勒泰市| 武城县| 普安县| 饶河县| 英德市| 孟村|