Je cherche à mettre en place un bon moyen de mettre en cache les résultats des requêtes AJAX afin que le même utilisateur n'ait pas à répéter deux fois la même requête sur la même page. J'ai mis quelque chose en utilisant un Hash
qui fonctionne bien mais je ne suis pas sûr s'il y a une meilleure méthode que je pourrais utiliser. Ceci est un extrait approximatif de ce que je suis venu avec ce qui devrait vous donner une idée générale:Mise en cache des résultats de requête AJAX avec le prototype
var ajaxresults;
document.observe("dom:loaded", function() {
ajaxresults = new Hash();
doAjaxQuery();
});
function doAjaxQuery(){
var qs = '?mode=getSomething&id='+$('something').value;
if(ajaxresults.get(qs)){
var vals = (ajaxresults.get(qs)).evalJSON();
doSomething(vals);
}else{
new Ajax.Request('/ajaxfile.php'+qs,{
evalJSON: true,
onSuccess: function(transport){
var vals = transport.responseText.evalJSON();
ajaxresults.set(qs,transport.responseText);
},
onComplete: function(){
doSomething(vals);
}
});
}
}
probablement pas besoin de persistance de la page dans ce cas, pouvez-vous donner des exemples/liens vers ce que vous entendez par arbre de résultats json? – robjmills
J'ai ajouté un exemple à ma réponse. –
merci pour l'info – robjmills