Запрос Ajax не загружает новые данные - PullRequest
2 голосов
/ 14 мая 2011

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

функция getStatus () {

request = new XMLHttpRequest ();

request.open ("GET", SOME_URL, true);

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

request.onreadystatechange = function () {

if (request.readyState === 4 && request.status === 200)

* * 1 022 UpdateStatus (request.responseText); * +1023 *

};

request.send ()

}

setInterval(getStatus, 500);

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

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

1 Ответ

2 голосов
/ 14 мая 2011

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

"SOME_URL?random=" + Math.random()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...