Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 9631|Atbildi: 0

[JavaScript] require() paziņojums AMD specifikācija

[Kopēt saiti]
Publicēts 13.02.2019 14:01:09 | | |
Šo ziņu pēdējo reizi rediģēja Vasara 2019-2-13 14:04

2009. gadā amerikāņu programmētājs Raiens Dāls izveidoja node.js projektu, lai servera puses programmēšanai izmantotu JavaScript valodu.

Tas iezīmē "Javascript modulārās programmēšanas" dzimšanu. Priekšgala sarežģītība ir ierobežota, un ir labi, ja nav moduļu, bet servera pusē ir jābūt moduļiem, lai mijiedarbotos ar operētājsistēmu un citām lietojumprogrammām, pretējā gadījumā to vispār nevar ieprogrammēt.

Viena no svarīgākajām idejām mezglu programmēšanā ir moduļi, un tieši šī ideja padara iespējamu liela mēroga JavaScript inženieriju. Modulārā programmēšana bija populāra JS pasaulē, un tā bija balstīta uz to, un pēc tam pārlūkprogrammas pusē parādījās arī tādi rīku komplekti kā requirejs un seajs, tā sakot, saskaņā ar atbilstošo specifikāciju, prasa regulēt visu modulāro programmēšanu pirms ES6, pat tagad, pirms ES6 modulis tika pilnībā ieviests.

CommonJS ekspozīcijas modulis izmanto module.exports un exports, un daudzi cilvēki nesaprot, kāpēc ir divi eksponēti objekti, kas tiks ieviesti vēlāk

CommonJS ir globāla metode require(), kas tiek izmantota moduļu ielādei. Pieņemot, ka ir matemātikas modulis math.js, to var ielādēt šādi.



Pēc tam varat izsaukt moduļa piedāvātās metodes:

Tieši tāpēc, ka CommonJS izmanto nepieciešamo metodi, AMD un CMD izmantotā nepieciešamā metode vēlāk tiek izmantota, lai atsauktos uz moduļu stilu

AMD specifikācija

Izmantojot servera puses moduļus, ir dabiski, ka ikviens vēlas klienta puses moduļus. Un vislabāk, ja abi ir saderīgi, un modulis var darboties gan serverī, gan pārlūkprogrammā bez izmaiņām.

Tomēr pastāv būtisks ierobežojums, kas padara CommonJS specifikāciju nepiemērojamu pārlūkprogrammu vidēm. Joprojām kods no iepriekšējās sadaļas, ja tas darbojas pārlūkprogrammā, būs liela problēma



Otrā rinda math.add(2, 3) darbojas pēc pirmās rindiņas require('math'), tāpēc ir jāgaida math.js kamēr ielāde beigsies. Tas ir, ja ielādes laiks ir garš, visa lietotne apstāsies un gaidīs.

Tā nav problēma servera pusē, jo visi moduļi tiek glabāti vietējā cietajā diskā un tos var ielādēt sinhroni, un gaidīšanas laiks ir cietā diska lasīšanas laiks. Tomēr pārlūkprogrammām tā ir liela problēma, jo moduļi tiek novietoti servera pusē, un gaidīšanas laiks ir atkarīgs no interneta ātruma ātruma, kas var aizņemt ilgu laiku, un pārlūkprogramma ir "apturētas nāves" stāvoklī.


Tāpēc pārlūkprogrammas puses moduļi nevar izmantot "sinhronu", bet var izmantot tikai "asinhronu". Tas ir AMD specifikācijas dzimšanas fons.

AMD ir saīsinājums no "Asinhronā moduļa definīcija", kas nozīmē "Asinhronā moduļa definīcija". Tas ielādē moduli asinhroni, un moduļa ielāde neietekmē tā turpmāko paziņojumu darbību. Visi paziņojumi, kas ir atkarīgi no šī moduļa, ir definēti atzvanīšanas funkcijā, kas netiks izpildīta, kamēr ielāde nav pabeigta.

Moduļiem jābūt definētiem ar īpašu define() funkciju.


•ID: virkne, moduļa nosaukums (pēc izvēles)
•Atkarības: ir atkarīgais modulis, kuru vēlamies ielādēt (pēc izvēles), izmantojot relatīvo ceļu. , ņemiet vērā, ka tas ir masīva formāts
• Rūpnīca: rūpnīcas metode, atgriež moduļa funkciju
Ja modulis nav atkarīgs no citiem moduļiem, to var definēt tieši funkcijā define().


Ja modulis ir atkarīgs arī no citiem moduļiem, tad funkcijas define() pirmajam argumentam jābūt masīvam, kas norāda moduļa atkarības.



Kad funkcija require() ielādē iepriekš minēto moduli, tā vispirms ielādēs Lib.js failu.

AMD izmanto arī require() paziņojumu, lai ielādētu moduli, bet atšķirībā no CommonJS, tam ir nepieciešami divi parametri:

Pirmais parametrs [modulis] ir masīvs, un tajā esošie dalībnieki ir ielādējamie moduļi; Otrais parametrs ir atzvanīšanas funkcija pēc veiksmīgas ielādes. Ja pārrakstāt iepriekšējo kodu AMD formā, tas izskatās šādi:


math.add() netiek sinhronizēts ar matemātikas moduļa ielādi, un pārlūkprogramma neaptur animāciju. Tātad, acīmredzot, AMD ir vairāk piemērots pārlūkprogrammas videi.

Pašlaik ir divas galvenās Javascript bibliotēkas, kas īsteno AMD specifikāciju :require.js un curl.js.







Iepriekšējo:init: function (){}方法的写法原因
Nākamo:【Praktiskā cīņa】 Kibana 6.5.2 ķīniešu ķīniešu apmācība
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com