19 janvier 2014

Outil javascript : url anti-cache en Ajax récursif

L'ajax récursif, utile pour accéder au code source d'une page, à ses données HTTP etc. doit tenir compte de la dernière version de la page sans s'en tenir au cache du navigateur. L'on pourrait lancer une requête avec la méthode classique pour forcer le rafraîchissement : le passage de query string. Le problème sur un CMS tel que Drupal, est le ralentissement considérable causé par ces paramètres supplémentaires d'url.

Une solution réside dans l'insertion d'un identifiant. Liant authentification, droits d'utilisateur et accès au contenu, la variation de cet identifiant devrait théoriquement, et je l'ai en pratique constaté, lancer la requête sans être arrêté par le cache.
Sur Internet Explorer cependant, et sans trop de surprise, il faut s'en tenir aux paramètres traditionnels.

var url = document.location.href;
ajax.open("GET",msie > 0 ? 
     url + ((/\?/).test(url) ? "&" : "?" ) + new Date().getTime() :
     url.replace(/\/{2}/,"//" + new Date().getTime() + "@"),
true);

Exemple dans un bookmarlet de récolte de données.

Aucun commentaire: