Длинный опрос JSONP всегда загружается
-
23-09-2019 - |
Вопрос
Я выполняю длинный опрос с помощью JSONP, и Firefox постоянно отображает счетчик «Загрузка», из-за чего кажется, что страница еще не завершила загрузку.Есть ли способ подавить это?
Мне сказали, что у команды Orbited есть хаки для подавления этого, но, просматривая код Orbited.js, я не могу понять, что это такое.Любая помощь будет принята с благодарностью.
Решение
Это простое решение..Все, что вам нужно сделать, это запустить запрос на опрос с помощью setTimeout.
Вот код, который я использую..Он использует jQuery, но я предполагаю, что вы сами сможете понять, что вам нужно, и использовать свою библиотеку, чтобы сделать то же самое.
<script type="text/javascript">
function poll(){
$.getJSON('/updates', function(json){
//reconnect since we successfully received data and disconnected
poll();
//add something here to do whatever with the recieved data
});
}
/*call the poll function after document has loaded with setTimeout
if called before the document finishes loading completely it will
cause a constant loading indication*/
setTimeout(poll, 1);
</script>
Другие советы
У меня нет ответа, но есть предложенная альтернатива.Кто-то еще только что задал аналогичный вопрос и вот мой ответ.
По сути, если вы контролируете сервер, самым простым решением является использование заголовков совместного использования ресурсов Cross-Origin для подтверждения междоменного XMLHttpRequest и возврата к JSONP в старых браузерах.
Я предоставил достаточно полную таблицу совместимости (каждый браузер с поддержкой пользовательских сценариев) для CORS как часть ответа, на который я дал ссылку, а также более общую таблицу. в Википедии.