Domanda

Abbiamo appena iniziato a utilizzare Requisitejs nel nostro progetto e lo adoriamo. Attualmente lo stiamo solo usando per gestire i nostri numerosi plug -in jQuery su cui il sito è in corso, quindi stiamo a malapena graffiando la superficie del suo potenziale ... ma a causa dei vincoli di tempo questo deve aspettare.

Sto avendo dei problemi a giocare l'ottimizzatore come vorrei, mi chiedo se potresti dirmi se è anche possibile farlo. La mia struttura di directory:

> /common/
> /common/*.js - common plugins used on most pages on the site
> /infrequent/
> /infrequent/infrequentModule.js
> /infrequent/ckeditor
> /infrequent/ckeditor/1000s.js
> /require.js
> /jquery.js
> /main.js - this file contains all scripts in common. It looks at the page and call the necessary plugins.

Ottimizzazione/build speranze:

  • main.js conterrebbe tutti gli script comuni. Nella maggior parte delle pagine questo script sarà l'unico caricato (tranne Requisite.js)
  • main.js guarda la pagina, se vede che ha bisogno di un plug -in/modulo raro, carica quell'asincronizzazione. Quindi, su una pagina rara, posso caricare richiedere.js, main.js e infrequentmodule.js.

Ho provato vari metodi nello script build per escludere e includere file per ottenere i risultati desiderati ma inutilmente. Qualcuno ha qualche idea o sa se questo è, in effetti, anche possibile?

È stato utile?

Soluzione

OK, quindi ho ricevuto alcune fantastiche risposte sul gruppo Google per Requisite.js - http://groups.google.com/group/requirejs/browse_thread/thread/359b02473f4e707

Quella che segue è una risposta utile che mi è stata data che spero che possa aiutare qualcun altro ...

Ciao, attualmente lo sto facendo in uno dei miei progetti, ecco il mio build.js:

paths: { 
                //load libs from cdn 
                "jqueryUI": "jqueryUI", //temp static file for build 
                "swfobject": "swfobject", //temp static file for build 
                "Templates": "../Templates/Settings" 
        }, 
modules: [{ 
            name: "appName", 
                        excludeShallow: ["jqueryUI", "swfobject", "Modules/ 
module.preferences"] 
        } 

Quindi in uno dei miei moduli ho una richiesta di richiesta per moduli/ moduli.preferenze che eseguo quando ne ho bisogno:

function loadPreferences(){ 
 require(["Modules/module.preferences"],function(){ 
                     //Execute some init code after the module has 
loaded 
         }) 
 } 
} 

Ciò ottiene ciò che hai descritto dove ho richiesto e caricato principale sul carico di pagina, quindi il modulo.Preference caricano asincronizzati quando ne ho bisogno. Spero che questo aiuti, Jeff.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top