J'ai récemment appris JavaScript et j'ai vu de nombreux exemples d'utilisation de Math.rand() pour ajouter des liens (Face book.com, signets de lisibilité).
Quel problème cela résout-il ? Exemples de paramètres dans le bookmarklet Lisibilité :
_readability_script.src='http://lab.arc90.com/....script.js?x='+(Math.random());
Y a-t-il des conflits ou des problèmes dans JavaScript qui doivent être résolus ?
Le point clé est d’éviter la mise en cache de ces ressources par le navigateur.
Comme l'a dit Rubens, il s'agit souvent d'une astuce utilisée pour empêcher la mise en cache. Les navigateurs ont tendance à mettre en cache JavaScript et CSS de manière très agressive, ce qui peut vous faire économiser de la bande passante, mais peut également entraîner des problèmes de déploiement lors de la modification des scripts.
L'idée est que le navigateur pensera qu'il se trouve à
http://www.example.com/something.js?foo
的资源与http://www.example.com 不同/something.js?bar
et n'utilisera donc pas le cache local pour récupérer la ressource.Un modèle plus courant consiste probablement à ajouter une valeur incrémentielle qui change chaque fois que la ressource doit changer. De cette façon, vous bénéficiez de la gestion du cache côté client des requêtes répétées, mais lorsqu'une nouvelle version est déployée, vous forcez le navigateur à récupérer la nouvelle version.
Personnellement, j'aime ajouter l'heure de dernière modification du fichier sous forme d'horodatage Unix afin de ne pas avoir à chercher et à modifier le numéro de version à chaque fois que je modifie le fichier.