Domanda quali sono i vantaggi dell'utilizzo di un AMD come requirejs o moduli commonjs in javascript?


Ho letto molti articoli su soluzioni AMD come RequireJS o caricatori di moduli che seguono lo stile CommonJS in Javascript.

Diciamo che ho un'app divisa in questa parte:

  • Definizione dell'app che si basa sul framework che utilizzo
  • Modello 1 che si basa sulla definizione e sulla struttura delle app
  • Modello 2 che si basa sulla definizione dell'app, sul modello 1 e sul mio framework

Potrei scrivere ogni parte come un modulo RequireJS o un modulo JS comune e dividere il mio progetto in quanti file voglio, ma qual è il vantaggio di scrivere ogni parte come un modulo o dividerli in molti file e quindi caricarli nell'ordine corretto ( per evitare problemi di dipendenza) forse concatenando tutti i file in uno grande per ridurre i requisiti HTTP (come fatto da r.js optimizer)?


15
2017-08-18 23:06


origine


risposte:


A mio parere, ci sono tre ragioni piuttosto importanti:

È possibile creare e riutilizzare i moduli senza inquinare lo spazio dei nomi globale. Più il tuo spazio dei nomi globale è inquinato, maggiori sono le possibilità di una collisione tra funzione e variabile. Ciò significa che definisci una funzione chiamata "pippo" e un altro sviluppatore definisce la funzione "pippo" = una delle funzioni viene sovrascritta.

Puoi strutturare il tuo codice in cartelle e file separati e requirejs li caricherà in modo asincrono quando necessario, quindi tutto funziona correttamente.

Puoi costruire per la produzione. RequireJS è dotato di un proprio strumento di compilazione chiamato R.JS che consente di concatenare e ugolare i moduli javascript in un singolo (o più) pacchetti. Ciò migliorerà la velocità della pagina in quanto l'utente dovrà effettuare meno chiamate di script e caricare meno contenuto (come il tuo JS è stato migliorato).

Puoi dare un'occhiata a questo semplice progetto dimostrativo: https://c9.io/peeter-tomberg/requirejs (in cloud9ide).

Per creare i tuoi moduli in un'unica app, devi solo installare requirejs npm package ed eseguire il comando: r.js -o build / build.properties.js

Se ci sono domande, chiedi via.

Modificare:

In fase di sviluppo, avere tutti i moduli in file separati è solo un buon modo per strutturare e gestire il tuo codice. Ti aiuta anche a eseguire il debug (ad es. Errore su "Module.js line 17" invece di "scripts.js line 5373").

Per la produzione, dovresti usare lo strumento di compilazione per concatenare e ugolare il javascript in un singolo file. Questo aiuterà la pagina a caricarsi più velocemente mentre stai facendo meno richieste. Ogni richiesta che fai per caricare qualcosa rallenta la tua pagina. Più la tua pagina è lenta, meno punti ti danno Google. Più la pagina è lenta, più i tuoi utenti saranno frustrati. Più la tua pagina è lenta, meno vendite avrai.

Se desideri saperne di più sulle prestazioni della pagina web, guarda http://developer.yahoo.com/performance/rules.html 


11
2017-08-19 00:47