wszystko!Jaki jest cel parametru "& rnd =" w żądaniach http?
Dlaczego niektóre aplikacje internetowe korzystają z parametru http-get "& rnd ="? Jaki jest tego cel? Jakie problemy rozwiązuje ten tag?
wszystko!Jaki jest cel parametru "& rnd =" w żądaniach http?
Dlaczego niektóre aplikacje internetowe korzystają z parametru http-get "& rnd ="? Jaki jest tego cel? Jakie problemy rozwiązuje ten tag?
Może to sprawić, że strona/obraz/cokolwiek nie zostanie pobrana z pamięci podręcznej użytkownika. Jeśli link jest inny za każdym razem, przeglądarka pobierze go z serwera, a nie z pamięci podręcznej, upewniając się, że jest to najnowsza wersja.
Może to być również śledzenie postępów ludzi w witrynie. Najlepiej wyjaśnić to krótką historią:
Wszystko, co możemy zrobić, to zasugerować możliwości. Nie ma jednego standardowego powodu, aby umieścić rnd = w adresie URL i nie możemy znać motywów projektanta strony internetowej, nie widząc oprogramowania serwera.
To prawie zawsze w przypadku pomijania pamięci podręcznej.
Internet Explorer i inne przeglądarki odczytują adres URL obrazu, pobierają obraz i zapisują go w pamięci podręcznej.
Jeśli aplikacja ma regularnie aktualizować obraz, a użytkownicy nie powinni widzieć obrazu w pamięci podręcznej, adres URL musi być niepowtarzalny za każdym razem.
Dlatego dodanie losowego ciągu znaków gwarantuje, że będzie to unikatowe i pobierane do pamięci podręcznej za każdym razem.
Jak sugerowali inni. Tego rodzaju zachowanie jest zwykle używane w celu uniknięcia problemów z buforowaniem podczas wywoływania strony, która zwraca dane dynamicznej zawartości.
Załóżmy na przykład, że masz stronę, która pobiera aktualne informacje o użytkowniku, takie jak "mysite.com/CurrentUserData". Po pierwszym wywołaniu tej strony dane użytkownika zostaną zwrócone zgodnie z oczekiwaniami, ale w zależności od ustawień czasu i buforowania drugie połączenie może zwrócić te same dane - nawet jeśli oczekiwane dane mogły zostać zaktualizowane.
Głównym powodem buforowania jest oczywiście optymalizacja prędkości częstego żądania. Ale w przypadku, gdy nie jest to pożądane, dodanie losowej wartości jako parametru ciągu zapytania jest powszechnie stosowane.
Istnieją jednak inne sposoby na obejście tego problemu. Na przykład, jeśli wykonywałeś żądanie Ajax za pomocą javascript/JQuery. Możesz ustawić pamięć podręczną jako fałszywą w rozmowie ...
$.ajax({url: 'page.html', cache: false});
można również zmienić dla wszystkich wywołań stron po załadowaniu dokumentu za pomocą ...
$.ajaxSetup({cache: false}});
Jeśli było zrobić aplikację MVC, można nawet wyłączyć buforowanie na temat metod działania Sterowanie za pomocą atrybutu jak tak ...
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult NonCacheableData()
{
return View();
}
(dzięki szybkiego kopiowania i wklejania od here)
Śmiem twierdzić, że istnieją również ustawienia w IIS, które można zastosować, aby uzyskać ten sam efekt - chociaż nie byłem jeszcze tak daleko.
Nie zaobserwowałem tego, ale może to pomóc w pozbyciu się pamięci podręcznej. – Dev