中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

javascript中adm指的是什么

發布時間:2021-06-09 14:00:51 來源:億速云 閱讀:243 作者:小新 欄目:web開發

這篇文章給大家分享的是有關javascript中adm指的是什么的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在javascript中,AMD指的是“異步模塊定義”,是一種模塊規范,它采用異步方式加載模塊,模塊的加載不影響它后面語句的運行;所有依賴這個模塊的語句,都定義在一個回調函數中,等到加載完成之后,這個回調函數才會運行。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

隨著網站逐漸變成"互聯網應用程序",嵌入網頁的Javascript代碼越來越龐大,越來越復雜。

網頁越來越像桌面程序,需要一個團隊分工協作、進度管理、單元測試等等......開發者不得不使用軟件工程的方法,管理網頁的業務邏輯。

Javascript模塊化編程,已經成為一個迫切的需求。理想情況下,開發者只需要實現核心的業務邏輯,其他都可以加載別人已經寫好的模塊。

但是,Javascript不是一種模塊化編程語言,它不支持"類"(class),更遑論"模塊"(module)了。(正在制定中的ECMAScript標準第六版,將正式支持"類"和"模塊",但還需要很長時間才能投入實用。)

Javascript社區做了很多努力,在現有的運行環境中,實現"模塊"的效果。本文總結了當前"Javascript模塊化編程"的最佳實踐,說明如何投入實用。雖然這不是初級教程,但是只要稍稍了解Javascript的基本語法,就能看懂。

模塊的規范

先想一想,為什么模塊很重要?

因為有了模塊,我們就可以更方便地使用別人的代碼,想要什么功能,就加載什么模塊。

但是,這樣做有一個前提,那就是大家必須以同樣的方式編寫模塊,否則你有你的寫法,我有我的寫法,豈不是亂了套!考慮到Javascript模塊現在還沒有官方規范,這一點就更重要了。

目前,通行的Javascript模塊規范共有兩種:CommonJS和AMD。

CommonJS

2009年,美國程序員Ryan Dahl創造了node.js項目,將javascript語言用于服務器端編程。

javascript中adm指的是什么

這標志"Javascript模塊化編程"正式誕生。因為老實說,在瀏覽器環境下,沒有模塊也不是特別大的問題,畢竟網頁程序的復雜性有限;但是在服務器端,一定要有模塊,與操作系統和其他應用程序互動,否則根本沒法編程。

node.js的模塊系統,就是參照CommonJS規范實現的。在CommonJS中,有一個全局性方法require(),用于加載模塊。假定有一個數學模塊math.js,就可以像下面這樣加載。

var math = require('math');

然后,就可以調用模塊提供的方法:

var math = require('math');
math.add(2,3); // 5

因為這個系列主要針對瀏覽器編程,不涉及node.js,所以對CommonJS就不多做介紹了。我們在這里只要知道,require()用于加載模塊就行了。

瀏覽器環境

有了服務器端模塊以后,很自然地,大家就想要客戶端模塊。而且最好兩者能夠兼容,一個模塊不用修改,在服務器和瀏覽器都可以運行。

但是,由于一個重大的局限,使得CommonJS規范不適用于瀏覽器環境。還是上一節的代碼,如果在瀏覽器中運行,會有一個很大的問題,你能看出來嗎?

var math = require('math');
math.add(2, 3);

第二行math.add(2, 3),在第一行require('math')之后運行,因此必須等math.js加載完成。也就是說,如果加載時間很長,整個應用就會停在那里等。

這對服務器端不是一個問題,因為所有的模塊都存放在本地硬盤,可以同步加載完成,等待時間就是硬盤的讀取時間。但是,對于瀏覽器,這卻是一個大問題,因為模塊都放在服務器端,等待時間取決于網速的快慢,可能要等很長時間,瀏覽器處于"假死"狀態。

因此,瀏覽器端的模塊,不能采用"同步加載"(synchronous),只能采用"異步加載"(asynchronous)。這就是AMD規范誕生的背景。

AMD規范

AMD是"Asynchronous Module Definition"的縮寫,意思就是"異步模塊定義"。它采用異步方式加載模塊,模塊的加載不影響它后面語句的運行。所有依賴這個模塊的語句,都定義在一個回調函數中,等到加載完成之后,這個回調函數才會運行。

AMD也采用require()語句加載模塊,但是不同于CommonJS,它要求兩個參數:

require([module], callback);

第一個參數[module],是一個數組,里面的成員就是要加載的模塊;第二個參數callback,則是加載成功之后的回調函數。如果將前面的代碼改寫成AMD形式,就是下面這樣:

  require(['math'], function (math) {
    math.add(2, 3);
  });

math.add()與math模塊加載不是同步的,瀏覽器不會發生假死。所以很顯然,AMD比較適合瀏覽器環境。

目前,主要有兩個Javascript庫實現了AMD規范:require.js和curl.js。本系列的第三部分,將通過介紹require.js,進一步講解AMD的用法,以及如何將模塊化編程投入實戰。

感謝各位的閱讀!關于“javascript中adm指的是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

海宁市| 舒城县| 道真| 阿坝| 阿荣旗| 神木县| 德江县| 乳山市| 莱西市| 黑山县| 景洪市| 资溪县| 定安县| 黑水县| 明星| 邵武市| 井陉县| 巴青县| 抚顺市| 商城县| 延边| 瓦房店市| 南漳县| 南川市| 巴中市| 花垣县| 玉山县| 东辽县| 固阳县| 且末县| 年辖:市辖区| 唐海县| 灵石县| 元氏县| 阜城县| 西贡区| 班戈县| 唐河县| 孝义市| 思南县| 大名县|