2013-04-19 10 views
5

È possibile modificare gli URL di richiesta utilizzati dal caricatore AMD dojo prima che una richiesta venga inviata al server per un modulo AMD? Vorrei aggiungere un parametro di richiesta con un numero di versione.È possibile aggiungere un parametro di richiesta alle richieste del modulo dojo tramite il caricatore AMD di dojo

Il problema che stiamo cercando di risolvere è che vogliamo che i nostri file javascript siano memorizzati nella cache dal browser a meno che la versione dell'applicazione non venga aggiornata. Penso che dovremmo essere in grado di farlo se possiamo aggiungere un numero di versione all'URL richiesto.

risposta

10

La proprietà di configurazione paths sembra funzionare per i singoli moduli e cacheBust può essere utilizzato per tutti i moduli. Example jsfiddle.

<script> 
var dojoConfig = { 
    paths: { 
     // version a single file by using path with version number 
     "aa": "mylib-aa.js?v=1.0", 
     // standard path, no explicit versioning 
     "bb": "mylib-bb" 
    }, 
    // use v=1.0 for ALL loaded modules 
    cacheBust: "v=1.0", 
    waitSeconds: 10 
}; 
</script> 
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/dojo.js"></script> 
<script> 
require(["aa", "bb"], function() {}); 
</script> 

Dare:

"NetworkError: 404 Not Found - https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/mylib-aa.js?v=1.0.js&v=1.0" 
"NetworkError: 404 Not Found - https://ajax.googleapis.com/ajax/libs/dojo/1.8.3/dojo/mylib-bb.js?v=1.0" 

L'incidente di percorso per l'approccio paths è il trailing ".js", ma ai fini del controllo delle versioni non credo che sia un problema come l'URL è ancora unico nel modo in cui vuoi che sia.

+0

cosa dire di aggiungere gli stessi parametri http a tutte le richieste, indipendentemente dal pacchetto? C'è un modo per configurarlo? –

+1

Sì, ciò può essere ottenuto con il parametro 'cacheBust' config - https://github.com/dojo/dojo/blob/1.8.3/dojo.js#L527. –

+0

Grazie Paolo, la tua risposta ti aiuta, ma una risposta alla domanda di David sarebbe un'idea. Se ci fosse un modo per farlo su tutti i pacchetti, sarebbe meglio. – Shilpam