Запрос Ajax не загружает новые данные

#javascript #ajax #caching #browser #nook

#javascript #ajax #кэширование #браузер #nook

Вопрос:

Мое приложение использует опрос для обновления статуса музыкального проигрывателя. Для этого я использую setInterval вызов Ajax каждые полсекунды. Это работает во многих браузерах (Chrome, Firefox, Safari …), за исключением браузера Nook color. При загрузке страницы обновляется правильная информация, но после этого она всегда загружает одну и ту же информацию. Это было подтверждено с помощью alert . Вот исходный код

функция GetStatus() {

запрос = новый XMLHttpRequest();

request.open(«GET», SOME_URL, true);

request.setRequestHeader(«Content-Type», «application/x-www-form-urlencoded»);

запрос.onreadystatechange = функция () {

если (request.readyState === 4 amp;amp; request.status === 200)

UpdateStatus(request.responseText);

};

request.send()

}

 setInterval(getStatus, 500);
  

Есть идеи, почему он всегда загружает одну и ту же информацию (информацию, которую он извлекает изначально)?

Также: он загружает только самую последнюю информацию, если вы очистите кэш. Этот Nook был внедрен, а также имел Firefox, и он работал бы просто отлично. Это делает собственный браузер Nook (внедренный или некорневой).

Ответ №1:

Internet Explorer имеет странную особенность, при которой он кэширует содержимое AJAX. Я полагаю, вы видите ту же проблему в браузере Nook. Решение состоит в том, чтобы добавить параметр «cache buster», который в основном является просто случайным параметром, поэтому URL обрабатывается заново:

"SOME_URL?random="   Math.random()