Mettre en cache ses objets Javascript
myStorage.js …ses requêtes Ajax en cache
Cette classe JS permet de mettre en cache les résultats de ses requêtes Ajax.
l’intérêt est d’éviter les requêtes inutiles au serveur d’application (et/ou de données). elle utilise le framework prototype.js
Dans une application full Ajax, ou un simple widget Ajax, il peut être intéressant de mettre le résultat de ses requêtes en cache. si on prend l’exemple de données extraites d’une base de données, l’intérêt est encore plus important, car cela évite de re taper la base de données à chaque évènement de l’utilisateur.
Le seul problème est qu’il est important de bien gérer la validité des informations mises en cache.
Mise en route
Un exemple rapide d’utilisateur avec Ajax.Request
-
function loadData (id) {
-
var key = ‘item-’ + id;
-
var item;
-
-
/** get data if exists */
-
if ((item = storage.get (key)) !== false) {
-
return item;
-
}
-
-
new Ajax.Request (‘data.php?id=’ + id, {
-
onSuccess: function (xhr) {
-
var json = xhr.responseText.evalJSON ();
-
if (json.response && json.response == ‘OK’) {
-
-
/** add data for 1 hour */
-
storage.set (key, json.data, 3600);
-
return json.data;
-
}
-
}
-
});
-
}



