Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

WebDemon -- библиотека для облегчения непрерывной подгрузки данных (Юрий Насретдинов, оценка: 4)
Author Message
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 195
   поощрить/наказать

Location: 007 495

PostPosted: Thu Apr 02, 2009 7:25 pm (написано за 19 минут 1 секунду)
   Post subject: WebDemon -- библиотека для облегчения непрерывной подгрузки данных
Reply with quote

WebDemon -- библиотека, имеющая JS-frontend и PHP-backend, которая облегчает написание приложений с непрерывной подгрузкой данных и заодно реализует концепцию Long Polling.

Идея основана на наличии скрытого <iframe>, в котором происходит непрерывная подгрузка потока данных, завернутых в тэг <script>. WebDemon вполне может использоваться вместе с JsHttpRequest и предлагается как небольшое дополнение к JsHttpRequest.

Ваш backend и frontend должны уметь посылать и принимать данные независимыми кусками, которые могут быть переданы отдельно.

Внимание! Если на Вашем веб-сервере существует какая-либо неотключаемая буферизация (к примеру, Apache работает через nginx reverse proxy), backend не сможет осуществлять непрерывную отправку данных.

JavaScript API:

подключение библиотеки:
Code (JavaScript): скопировать код в буфер обмена
<script src="lib/WebDemon.js"></script>
получение данных:
Code (JavaScript): скопировать код в буфер обмена
// зарегистрировать функцию для получения данных

WebDemon.register(
   
   backend,            // URL backend'а (вероятно, должен находиться на том же самом домене)
   onrecievefunc(data) // функция, которая будет вызвана каждый раз при получении данных; эта функция должна иметь один параметр, принимающий полученные данные

);
PHP API:

подключение библиотеки и инициализация:
Code (php): скопировать код в буфер обмена
include('lib/WebDemon.php');

declare(ticks=10); //

$wd = new WebDemon(
   
   $autoping = true//
   $is_utf8  = false  //

);
отправка данных:
Code (php): скопировать код в буфер обмена
while( ... /* )
{
        $wd -> send( $data ); //
}
Пример чата на основе этой библиотеки находится вместе с самой библиотекой во вложении.

Онлайн-демо можно найти здесь: datapoliten.ru/misc/chat/

В примере используется WebDemon для непрерывной загрузки сообщений, а JsHttpRequest -- для отправки сообщений.


webdemon.zip
 Description:
Библиотека WebDemon с примером работы (работает только под UNIX)

Download
 Filename:  webdemon.zip
 Filesize:  21.43 KB
 Downloaded:  703 Time(s)



Last edited by Юрий Насретдинов on Thu Apr 09, 2009 3:18 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 81
   поощрить/наказать


PostPosted: Fri Apr 03, 2009 9:32 am (спустя 14 часов 7 минут)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «WebDemon [обсуждение]»,
расположенную в форуме Разное :: JavaScript (03 Апреля 2009, 12:32).
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 195
   поощрить/наказать

Location: 007 495

PostPosted: Sun Sep 13, 2009 3:17 am (спустя 5 месяцев 9 дней 17 часов 45 минут; написано за 51 секунду)
   Post subject:
Reply with quote

Если Вы будете спрашивать, можно ли использовать в качестве бэкенда вот эту штуку:

dklab.ru/lib/dklab_multiplexor/

Ответом будет «да, конечно», но вот только разбираться с библиотекой Вам придётся самим.
Back to top
View user's profile Send private message Send e-mail
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 81
   поощрить/наказать


PostPosted: Mon Sep 14, 2009 7:11 pm (спустя 1 день 15 часов 53 минуты; написано за 3 минуты 6 секунд)
   Post subject:
Reply with quote

Юрий Насретдинов,
Quote:
Ответом будет «да, конечно», но вот только разбираться с библиотекой Вам придётся самим.
Я думаю, что при использании библиотеки дклаб мультиплексор, особого смысла в использовании твоего JS-fronted'a уже не будет,
ведь сама идея мультиплексора, заключается в том, чтобы держать ДОЛГОВРЕМЕННОЕ соединение, а твой фронтед, его переодически "повторяет".
А значит, главное преемущество мультиплексора, перед твоей либой пропадает.

К тому же в случае с библиотекой дклаб мультиплексор, гораздо удачнее (зачеркнуто) правильнее будет использовать XMLHttpRequest.
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 195
   поощрить/наказать

Location: 007 495

PostPosted: Tue Sep 15, 2009 1:12 am (спустя 6 часов 56 секунд; написано за )
   Post subject:
Reply with quote

С мультиплексором от дклаб есть такая проблемка, что он разрывает соединение после отсылки ответа клиенту. Моя библиотека этого не делает, и может поддерживать соединение дольше засчет ping-команд. Мультиплексор же разрывает соединение через 300 секунд принудительно.
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Tue Sep 15, 2009 10:52 am (спустя 9 часов 40 минут; написано за 3 минуты 54 секунды)
   Post subject:
Reply with quote

Александр Михалицын
Технологии совершенно различны и применимы в совершенно различных областях.

Мультиплексор:
1) меньше нагрузка на процессор
2) меньше потребление траффика
3) потенциально большее время отклика (например, данные пришли как раз в тот момент, когда соединение было разорвано)
4) независимость от клиента, формата данных, транспорта и т.п. (есть ограничения, описанные в статье, но они вполне решаемы в большинстве случаев)

Вебдемон:
1) больше нагрузка на процессор
2) больше потребление траффика
3) лучшее время отклика
4) жёсткая завязанность на JavaScript
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 81
   поощрить/наказать


PostPosted: Tue Sep 15, 2009 11:26 am (спустя 33 минуты; написано за 42 секунды)
   Post subject:
Reply with quote

WingedFox,
да я понимаю. Я поэтому и говорю, что не целесообразно использовать Юрин фрондед, для бакенда Дмитрия.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML