2012-08-08 19 views
18

Ho una pagina che, su richiesta dell'utente, apre una finestra di dialogo e carica un file esterno utilizzando il metodo load() di jQuery.Come ottenere un valore corrente da jQuery ajaxSetup

Il file esterno contiene collegamenti agli script (può funzionare anche come pagina autonoma) e va bene, solo che jQuery forza quegli script da caricare (aggiungendo un timestamp) anche se sono già stati caricati.

Devo dire a jQuery di consentire il caching quando vede questi script. La risposta ad un bug report suggerisce di utilizzare

$.ajaxSetup({ cache: true }) 

... che fa il lavoro, ma cambia l'impostazione per tutte le future richieste AJAX. C'è un modo per fare qualcosa di simile:

// Get current setting - code not valid but is what I want 
var defaultCache = $.ajaxSetup("cache"); 

$.ajaxSetup({cache:true}); // Now set it to what I want 

// do stuff… 

$.ajaxSetup({cache:defaultCache}); // Set it back to the default 

risposta

24

si può fare questo:

$.ajaxSetup()['cache'] 
+0

Naturalmente, non mi era venuto in mente che è possibile accedere alle proprietà anche dopo il nome di una funzione. Grazie per la pronta risposta! – user535673

+0

Per un ritorno booleano, possiamo usare: !! jQuery.ajaxSetup() ['cache'] –

+0

Questo non ha funzionato per me in JQuery 1.3.2. – ovaherenow

1

è possibile utilizzare questo:

$.ajaxSettings['cache'] 
+0

Questo ha funzionato per JQuery 1.3.2 – ovaherenow

0
// Save current global ajax setup 
$.cachedAjaxSetup = $.extend(true, {}, $.ajaxSetup()); 

// change global ajax setup 
$.ajaxSetup({ 
    headers : { "Authorization": 123 } 
}); 

// revert back to saved ajax setup 
$.ajaxSetup($.cachedAjaxSetup); 

L'(fastidioso) problema è che, l'oggetto verrà unito, quindi per l'esempio precedente, l'impostazione headers rimarrà perché non esisteva sull'oggetto originale.

È possibile superarlo se si conoscono le proprietà aggiunte, memorizzarle in cache e rimuoverle manualmente come in questo modo delete $.ajaxSettings.headers e quindi aggiungerle di nuovo quando è necessario ripetere questa impostazione. sporco, ma funziona ..

Problemi correlati