Générer une version aléatoire d'une URL ("cache busting") avec JavaScript
Concept et utilisation
La fonction urlCacheBuster()
permet de générer une version aléatoire d'une URL et de s'assurer que le navigateur ne charge pas des fichiers depuis le système de cache ("cache busting").
Fonction
urlCacheBuster()
Retourne une URL après avoir ajouté un paramètre de versionnage dont la valeur a été générée aléatoirement.
- Syntaxe
urlCacheBuster(options);
- Paramètre
options
(Object)Le paramètre
options
de la fonctionurlCacheBuster()
définit les propriétés de versionnage d'une URL.- Propriétés
url
(String)La propriété
url
du paramètreoptions
définit l'URL à versionner.
Si cette propriété est omise, l'URL affichée sera utilisée par défaut.versionKey
(String)
Exemple de versionnage d'une URL
var options = {
url: 'https://www.domaine.ext',
versionKey: 'cacheBuster'
};
urlCacheBuster(options);
// renvoie par exemple : 'https://www.domaine.ext?cacheBuster=6345695142079339'
Code source de la fonction
function urlCacheBuster(o) {
o = o || {};
var u = o.url || window.location.href,
q = (o.versionKey || 'cacheBuster') + '=' + Math.floor(Math.random() * 10000000000000000);
if (/\?$/.test(u)) {
u += q;
} else if (/\?#/.test(u)) {
u = u.replace('#', q + '#');
} else {
u = u.replace(new RegExp('(\\?|&)'+'q'+'=[0-9]+'),'');
q = ((u.indexOf('?') > -1) ? '&' : '?') + q;
if (u.indexOf('#') > -1) {
u = u.replace('#', q + '#');
} else {
u += q;
}
}
return u;
}
Dernière mise à jour le .