2009-06-04 4 views
0

I En utilisant ce codeDeuxième appel à l'Ajax obtenir le premier résultat Allways

<script type="text/javascript"> 
$(function() { 
    $('#DoTask').click(function(event) { 
     event.preventDefault(); // added this 
     $.getJSON('/TareasBackGround/DoTaskInteractivo', null, 
       function(response) { 
        $('#ResultadoEjecutarTarea').html("<br />Resutado:" + response.result); 
        $('#ResultadoEjecutarTarea').css("style", ""); 


       }); 
    }); 
}); 

Après le premier appel que je reçois toujours le même résultat. J'ajoute l'horodatage au résultat pour le vérifier.

Des idées?

Répondre

4

Ajouter ceci:

$.ajaxSetup ({cache: false}); 

juste au-dessus de votre événement click. Cela devrait empêcher la requête ajax de la mise en cache.

1

Vous mettez probablement le résultat en cache la première fois, alors lorsque vous le demandez la deuxième fois, vous obtenez le même horodatage (mis en cache).

1

La réponse est probablement mise en cache. Vous pouvez définir le cache Ajax option false ou ajouter un horodatage à la demande:

currentTime= (new Date()).getTime();  
url = '/TareasBackGround/DoTaskInteractivo?_=' + currentTime; 
+0

Comment puis-je désactiver le cache? –

+0

J'essaye le '/ TareasBackGround/DoTaskInteractivo? _ = [Temps actuel en millis ici]' comme ceci '/ TareasBackGround/DoTaskInteractivo? _ = <% = DateTime.Now.Millisecond%>' Obtenez le même comportement. –

+0

Vous devez recalculer l'heure actuelle sur le client, pas une seule fois sur le serveur. – kgiannakakis

Questions connexes