2010-05-04 33 views
9

jQuery 1.4.2 omite el parámetro GETmarca de tiempo (a Cacheing navegador derrota) si afirmo el ajuste ajax caché en el contexto local:¿JQuery ajaxSetup ({cache: true}) generalmente funciona?

$.ajax({ 
    url: searcher, 
    data: keys, 
    cache: true, 
    type: 'GET', 
    dataType: 'json', 
    success: function(data) { 
     // something 
    }); 

pero incluye marca de tiempo si muevo el ajuste de allí y en el contexto global:

$.ajaxSetup({cache: true}); 

por otra parte, si dejo que se aplica el valor por defecto, jQuery establece marca de tiempo, que no parece coincidir con el manual.

¿Experimenta lo mismo?

¿Los encabezados de respuesta de control de caché HTTP del servidor afectan esta característica jQuery?

Respuesta

9

Parece que funciona. Las siguientes tres llamadas ajax solo pasan una marca de tiempo como parámetro en el segundo caso. El nombre del parámetro timestamp no es timestamp, sino más bien un guión bajo.

$.ajax({ url: '/?=testDefault', 
    data: { 'cache': 'default' } 
    });//no timestamp 

    $.ajaxSetup({ cache: false }); 
    $.ajax({ url: '/?=testFalse/', 
    data: { 'cache': 'false' } 
    });//yes, a timestamp 

    $.ajaxSetup({ cache: true }); 
    $.ajax({ url: '/?=testTrue/', 
    data: { 'cache': 'true' } 
    }); //no timestamp 

Como un lado, ¿estás usando un complemento de autocompletar? Eso pasa un parámetro timestamp de forma predeterminada. Puede anularlo usando la opción extraParams al pasar algo como esto.

extaParams: {timestamp:'cache'} 
+0

Es un guión bajo, no un carácter en blanco. –

+0

James, creo que tienes razón sobre el complemento de autocompletar. Eso explicaría la inconsistencia que vi. –

-2

Puede agregar manualmente una marca de tiempo como un parámetro get, eso sería una solución totalmente correcta ¿no?

function myAjaxFunction() 
{ 
    var tS=new Date().getTime(); 
    $.ajax({ 
     url: searcher, 
     data: {timestamp:tS}, 
     cache: true, 
     type: 'GET', 
     dataType: 'json', 
     success: function(data) { 
      //something here 
     }}); 
} 
Cuestiones relacionadas