2012-08-08 9 views
18

Tengo una página que, a petición del usuario, abre un cuadro de diálogo y carga un archivo externo en él utilizando el método load() de jQuery.Cómo obtener un valor actual de ajaxSetup de jQuery

El archivo externo contiene enlaces a scripts (también puede funcionar como una página independiente) y eso está bien, solo que jQuery obliga a esos scripts a cargarse (agregando una marca de tiempo) incluso si ya se han cargado.

Necesito decirle a jQuery que permita el almacenamiento en caché cuando vea estos scripts. La respuesta a una bug report sugiere el uso de

$.ajaxSetup({ cache: true }) 

... lo que hace el trabajo, pero cambia la configuración para todas las futuras peticiones AJAX. ¿Hay una manera de hacer algo como:

// 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 

Respuesta

24

usted puede hacer esto:

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

Por supuesto, no se me había ocurrido que pudiera acceder a las propiedades incluso después de un nombre de función. ¡Gracias por la pronta respuesta! – user535673

+0

Para un retorno booleano, podemos usar: !! jQuery.ajaxSetup() ['cache'] –

+0

Esto no funcionó para mí en JQuery 1.3.2. – ovaherenow

1

podría utilizar este:

$.ajaxSettings['cache'] 
+0

Esto funcionó para 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); 

El (molesto) problema es, el objeto se fusionará, por lo que para el ejemplo anterior, la configuración headers se mantendrá porque no existía en el objeto original.

Puede solucionar esto si sabe qué propiedades se agregaron, almacenarlas en caché y eliminarlas manualmente como delete $.ajaxSettings.headers y luego volver a agregarlas cuando necesite esa configuración nuevamente. sucio, pero funciona ..

Cuestiones relacionadas