Как заставить веб-браузер завершить процесс загрузки, хотя я выполняю отложенные запросы AJAX в фоновом режиме? - PullRequest
1 голос
/ 23 августа 2011

Я пытаюсь реализовать простой механизм кометного длинного опроса ajax (как описано здесь ).

Проблема в том, что я не могу понять, как заставить браузер действовать так, как будто он завершил загрузку страницы, хотя в фоновом режиме выполняется ожидающий запрос. (Л

Одним из способов является использование веб-сокетов, но это слишком излишне.

Ответы [ 3 ]

1 голос
/ 24 августа 2011

Ах, старый "пульсатор судьбы": -)

Есть еще один вопрос об этом, который, вероятно, стоит прочитать. Это относится к КАДРАМ, но, скорее всего, все еще актуально.

Я написал пост на пульсере , когда работал над Kwwika, но пришел к досадному выводу, что на 100% избавиться от него не так просто.

Я бы предположил, что WebSockets на самом деле не излишни. Комета с использованием XMLHttpRequest и т. Д. Не является стандартом, фундаментально поддерживаемым веб-браузерами. Другими словами, они не делают все возможное, чтобы сделать долгоживущие HTTP-запросы очень легкими. WebSockets - это стандартизированный подход, который медленно, но неуклюже поддерживается во всех браузерах. Я надеюсь, что они делают это в IE10. Сейчас вы можете посмотреть что-то вроде web-socket-js , что обеспечит поддержку WebSocket в 99% браузеров. WebSockets также обеспечивают более низкую задержку и менее ресурсоемки, чем любое решение для опроса.

0 голосов
/ 26 августа 2011

ОК, мне как-то удалось решить эту проблему. Проблема «пульсатора гибели» была вызвана тем, что я выполнил запрос ajax в функции document.ready так:

$ (function () {$ .ajax ...});

Это решило это:

$ (function () {setTimeout (connect, 1000);});

0 голосов
/ 23 августа 2011

Вам нужен асинхронный вызов ajax http://api.jquery.com/jQuery.ajax/

...