История изменений
Исправление
Legioner,
(текущая версия)
:
Push это грубо говоря долго висящий коннект, который сервер не закрыват и в который время от времени выплевывает информацию.
Классический пример - в html пишем
<script src="myscript.pl"></script>
А в myscript.pl пишем браузеру любые интересующим нас js-вызовы, не возвращая управление.
Например так (перл не помню, напишу на псевдокоде):
while (true) {
sleep(1);
var progress = get_progress();
response.send('js_update_progress(' + progress + ');');
}
Браузер грузит это дело как жаваскрипт, по мере поступления данных выполняет их, ну а дальше уже дело техники.
Есть и другие способы добиться этого, подробнее в википедии. Ну а либы — чтобы обернуть это все в удобоваримый вид.
И, да, висящие коннекты не очень сочетаются с cgi, от тысячи-другой юзеров онлайн сервер может начать кряхтеть.
Исправление
Legioner,
:
Push это грубо говоря долго висящий коннект, который сервер не закрыват и в который время от времени выплевывает информацию.
Классический пример - в html пишем
<script src="myscript.pl"></script>
А в myscript.pl пишем браузеру любые интересующим нас js-вызовы, не возвращая управление.
Например так (перл не помню, напишу на псевдокоде):
while (true) {
sleep(1);
var progress = get_progress();
response.send('js_update_progress(' + progress + ');');
}
Браузер грузит это дело как жаваскрипт, по мере поступления данных выполняет их, ну а дальше уже дело техники.
Есть и другие способы добиться этого, подробнее в википедии. Ну а либо — чтобы обернуть это все в удобоваримый вид.
И, да, висящие коннекты не очень сочетаются с cgi, от тысячи-другой юзеров онлайн сервер может начать кряхтеть.
Исходная версия
Legioner,
:
Push это грубо говоря долго висящий коннект, который сервер не закрыват и в который время от времени выплевывает информацию.
Классический пример - в html пишем
<script src="myscript.pl"></script>
А в myscript.pl пишем браузеру любые интересующим нас js-вызовы, не возвращаясь управление.
Например так (перл не помню, напишу на псевдокоде):
while (true) {
sleep(1);
var progress = get_progress();
response.send('js_update_progress(' + progress + ');');
}
Браузер грузит это дело как жаваскрипт, по мере поступления данных выполняет их, ну а дальше уже дело техники.
Есть и другие способы добиться этого, подробнее в википедии. Ну а либо — чтобы обернуть это все в удобоваримый вид.
И, да, висящие коннекты не очень сочетаются с cgi, от тысячи-другой юзеров онлайн сервер может начать кряхтеть.