jQuery просто оборачивается вокруг объекта XHR / XMLHTTPRequest.
Прежде всего, вам нужна небольшая функция для возврата объекта кросс-браузерным способом. Это делается в 3 строки или меньше, не слишком сложно. Тем не менее, это отличные фрагменты для исправления различных проблем браузера, таких как утечки памяти. Я настоятельно рекомендую вам использовать этот . Они, конечно, занимают более 3 строк (если не минимизированы). Но в любом случае, если вам нужны повторные подключения, вы просто не сможете сделать это с нуля.
Далее, на стороне сервера, при условии, что вы используете PHP:
set_time_limit(300); // force connection only after 5 minutes
ignore_user_abort(false); // if the connection ends, terminate immediately
while(true){
if(some_condition()){
echo some_response();
break; // break the loop
}
sleep(2); // wait for a second or two
}
Клиентская сторона, просто повторяйте запрос всякий раз, когда соединение заканчивается. В этот момент также обработайте вывод.
Пример на стороне клиента:
function poll(){
jQuery.get('http://somesite.com/poll.php',function(data){
alert('Just received: '+data);
poll(); // repeat poll
});
}
poll(); // begin polling