LINUX.ORG.RU

История изменений

Исправление 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, от тысячи-другой юзеров онлайн сервер может начать кряхтеть.