Как было предложено другими. Такое поведение обычно используется, чтобы избежать проблем с кэшированием при вызове страницы, которая возвращает данные динамического содержимого.
Например, скажем, у вас есть страница, которая получает некоторую текущую информацию о пользователе, такую как «mysite.com/CurrentUserData». Теперь при первом обращении к этой странице пользовательские данные будут возвращены, как и ожидалось, но в зависимости от параметров синхронизации и кэширования второй вызов может вернуть те же данные - даже если ожидаемые данные могли быть обновлены.
Основная причина кеширования - это, конечно, оптимизация скорости частых запросов. Но в случае, когда это нежелательно, добавление случайного значения в качестве параметра строки запроса, как известно, является широко используемым решением.
Однако существуют и другие способы обойти эту проблему. Например, если вы выполняли Ajax-запрос с помощью javascript / JQuery. Вы можете установить кэш на false в вашем вызове ...
$.ajax({url: 'page.html', cache: false});
Вы также можете изменить его для всех вызовов страниц при загрузке документа с помощью ...
$.ajaxSetup({cache: false}});
Если бы вы создавали приложение MVC, вы даже можете отключить кэширование в методах управляющих действий с помощью атрибута, подобного этому ...
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public ActionResult NonCacheableData()
{
return View();
}
(благодаря быстрому копированию и вставке с здесь )
Осмелюсь сказать, что в IIS есть также настройки, которые вы можете применить для получения того же эффекта - хотя я еще не так далеко справился с этим.