2010-01-29 12 views
1

Je remplis le contenu de mes onglets en utilisant les appels AJAX avec le widget tabs de la bibliothèque jQuery UI.: Comment mettre en cache les réponses AJAX (à afficher la prochaine fois que l'utilisateur sélectionne un onglet)?

Mon code loks comme ça:

<script type="text/javascript"> 
    $(function() { 
     $("#tabs").tabs({ 
      load: function(event, ui) { afterLoadProcessing(); } 
     }); 
    }); 
</script> 
... 
<div id="tabs"> 
<ul> 
    <li><a href="url1">tab1</a></li> 
    <li><a href="url2">tab2</a></li> 
</ul> 
</div> 

Il fonctionne très bien et chaque fois que je clique sur l'onglet, le contenu de l'onglet est renseigné par la réponse de l'appel AJAX.

Je voudrais mettre en cache la réponse de l'appel AJAX, tel que la deuxième fois que je clique sur sur un onglet, il affichera directement la dernière réponse (en cache éventuellement).

Est-ce possible? (Je suis sûr que c'est ...). Si oui, quelle est la manière la plus simple de le faire? (Extraits de code sont les bienvenus)

Répondre

4

cache valeur true:

$("#tabs").tabs({ 
    load: function(event, ui) { afterLoadProcessing(); }, 
    cache : true 
}); 

reference

+0

Thx. Je l'ai manqué en quelque sorte dans le doc! Merci encore ! – fabien7474

+0

Vous êtes les bienvenus! :)) – Reigel

1

Il y a deux endroits où vous pouvez spécifier la mise en cache sur les onglets lui-même ou, en utilisant ajaxOptions, sur les ajaxCalls. J'essaierais d'utiliser cache: true sur les onglets pour voir si cela fonctionne en premier, puis spécifiez la mise en cache ajax aussi bien via l'option ajaxOptions que sur l'onglet setup. Vous pourriez avoir besoin des deux.