Pourquoi certaines applications Web utilisent-elles le paramètre http-get rnd code>? Quel est le but de cela? Quels problèmes sont résolus en utilisant ce paramètre? P>
4 Réponses :
C'est presque toujours pour le cache-buse. P>
Internet Explorer et d'autres navigateurs lira une URL d'image, téléchargez l'image et stockez-la dans un cache. P>
Si votre application va mettre à jour l'image régulière, vous souhaitez donc que vos utilisateurs ne voient pas une image en cache, l'URL doit être unique à chaque fois. P>
Par conséquent, l'ajout d'une chaîne aléatoire garantit qu'il sera unique et téléchargé dans la cache à chaque fois. P>
Ceci pourrait être de vous assurer que la page / l'image / tout ce qui n'est pas extraite du cache de l'utilisateur. Si le lien est différent à chaque fois, le navigateur l'obtiendra du serveur plutôt que du cache, assurant sa dernière version. P>
Il pourrait également être de suivre les progrès des personnes via le site. Mieux expliqué avec une petite histoire: p>
Tout ce que nous pouvons faire est de suggérer des possibilités cependant. Il n'y a pas de raison standard de mettre RND = dans une URL, et nous ne pouvons pas connaître les motivations du concepteur de site Web sans voir le logiciel serveur. P>
Comme cela a été suggéré par d'autres. Ce type de comportement est généralement utilisé pour éviter les problèmes de mise en cache lorsque vous appelez une page qui renvoie des données de contenu dynamiques.
Par exemple, dites que vous avez une page qui obtient des informations d'utilisateur actuelles telles que "mysite.com/currenttuserdata". Maintenant, sur le premier appel à cette page, les données utilisateur seront renvoyées comme prévu, mais en fonction des paramètres de synchronisation et de mise en cache, le deuxième appel peut renvoyer les mêmes données - même si les données attendues peuvent avoir été mises à jour. P>
La principale raison de la mise en cache est bien sûr d'optimiser la vitesse de la demande fréquente. Mais dans l'instance où cela n'est pas recherché, l'ajout d'une valeur aléatoire sous forme de paramètre de chaîne de requête est connu pour être une solution largement utilisée. P>
Il existe cependant d'autres moyens de contourner ce problème. Par exemple, si vous faites une demande Ajax avec JavaScript / JQuery. Vous pouvez définir le cache sur false dans votre appel ... p> Vous pouvez également le modifier pour tous les appels de page sur la charge de document avec ... P> [OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult NonCacheableData()
{
return View();
}
N'a pas observé cela, mais cela pourrait aider à se débarrasser de la cache.