Есть Windows Server и в нем установлена наша программулька
Программка (это сервис) во время своей работы ведет лог файлы.
А пользователи хотят видеть эти лог файлы или выжимки из них "в живую".
Небольшой win32 клиент уже есть, он может и показывать эти логи,
генерировать по ним отчеты, экспортировать...
А вот в виде живых html страничек такое возможно? Как?
Идеальный вариант — открыл пользователь какую либо страничку,
развалился в кресле и смотрит на меняющиеся цифирки и графики
К сожалению застрял на эпохе Win32, с новыми технологиями знаком мало...
В какую сторону мне лучше всего двигаться? Или такое пока не возможно?
Re: "Живые данные" на html страничках. Как такое сделать?
Здравствуйте, CleverBoy, Вы писали:
CB>Здравствуйте, adontz, Вы писали:
A>>AJAX (JavaScript + XML WebService)
CB>Спасибо, поизучаю.
CB>Может кто еще подскажет?
SilverLight + XML WebService
Flash + XML WebService
Re: "Живые данные" на html страничках. Как такое сделать?
Здравствуйте, CleverBoy, Вы писали: CB>Есть Windows Server и в нем установлена наша программулька CB>Программка (это сервис) во время своей работы ведет лог файлы. CB>А пользователи хотят видеть эти лог файлы или выжимки из них "в живую". CB>Небольшой win32 клиент уже есть, он может и показывать эти логи, CB>генерировать по ним отчеты, экспортировать... CB>А вот в виде живых html страничек такое возможно? Как? CB>Идеальный вариант — открыл пользователь какую либо страничку, CB>развалился в кресле и смотрит на меняющиеся цифирки и графики CB>К сожалению застрял на эпохе Win32, с новыми технологиями знаком мало... CB>В какую сторону мне лучше всего двигаться? Или такое пока не возможно?
Если Вам надо данные встроить в html страницу, то поможет тебе технология Ajax. Эта технология позволяет обновлять часть страницы, не загружая всю страницу целиком.
<i>Правильный путь один — СВОЙ. </i>
Re[2]: "Живые данные" на html страничках. Как такое сделать?
P>Если Вам надо данные встроить в html страницу, то поможет тебе технология Ajax. Эта технология позволяет обновлять часть страницы, не загружая всю страницу целиком.
Меня другое беспокоит.
Позволяют ли эти технологии обновлять странички по инициативе сервера?
т.е. появились данные в логе на сервере, страничка с цифирками/графиками у клиента сама обновилась...
Re[3]: "Живые данные" на html страничках. Как такое сделать?
С помощью каких технологий можно сделать тукую штуку?
Чтобы у клиента были "живые" web странички с данными сервера.
т.е. появилась строчка лога на сервере, клиент ее автоматически увидел.
Без принудительного обновления страничек по F5 или таймеру.
Re[4]: "Живые данные" на html страничках. Как такое сделать?
Здравствуйте, CleverBoy, Вы писали: CB>С помощью каких технологий можно сделать тукую штуку? CB>Чтобы у клиента были "живые" web странички с данными сервера.
Никаких. Возможности веб-страничек полностью описываются протоколом HTTP/1.1 (RFC 2616). CB>т.е. появилась строчка лога на сервере, клиент ее автоматически увидел. CB>Без принудительного обновления страничек по F5 или таймеру.
Ну есть один способ — вечно открытое соединение. Это в некотором смысле противоречит духу протокола HTTP/1.1, но работает. При условии того, что клиентский джаваскрипт достаточно умен для рестарта вечно открытого соединения при его обрыве. А также с учетом того, что количество одновременно открытых сокетов у сервера ограничено.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: "Живые данные" на html страничках. Как такое сделать?
Здравствуйте, Sinclair, Вы писали:
S>Ну есть один способ — вечно открытое соединение. Это в некотором смысле противоречит духу протокола HTTP/1.1, но работает. При условии того, что клиентский джаваскрипт достаточно умен для рестарта вечно открытого соединения при его обрыве. А также с учетом того, что количество одновременно открытых сокетов у сервера ограничено.
Да, принцип может быть таким: скрипт в цикле пишет в Output-поток с отключенной буферизацией, в конце каждого цикла делается принудительный flush. Для того, чтобы броузер клиента не сдох, скрипт через каждые N итераций заставляет броузер клиента переобновить страницу при помощи JavaScript или просто посылает заголовок refresh.
response.write("<html><head><meta http-equiv="refresh" content="1000; URL=index.jsp></head>");
for (int i = 0; i < 1000; i++)
{
response.write("<h1>" + i + "</h1>");
response.flush();
sleep(1000);
}
На таком принципе работают некоторые чаты.
Re: "Живые данные" на html страничках. Как такое сделать?
Здравствуйте, CleverBoy, Вы писали:
CB>Есть Windows Server и в нем установлена наша программулька CB>Программка (это сервис) во время своей работы ведет лог файлы.
CB>А пользователи хотят видеть эти лог файлы или выжимки из них "в живую". CB>Небольшой win32 клиент уже есть, он может и показывать эти логи, CB>генерировать по ним отчеты, экспортировать... CB>А вот в виде живых html страничек такое возможно? Как?
CB>Идеальный вариант — открыл пользователь какую либо страничку, CB>развалился в кресле и смотрит на меняющиеся цифирки и графики
CB>К сожалению застрял на эпохе Win32, с новыми технологиями знаком мало...
CB>В какую сторону мне лучше всего двигаться? Или такое пока не возможно?
Вобщем то все достаточно просто -- более того, не слушайте тех кто предлогает лезть во всякие там аяксы.
Для вашей задачи вполне хватит ЯваСкрипта в связке с CGI или типа того. JScript вполне может подгружать нужные данные из веба и динамически обновлять страницу
(обеспечивает полный контроль страницей). Правда факт обновления всервно будет инициироваться пользовательской стороной, но
будет напроядок легковеснее обновления страницы. (Никто ведь не мешает сначал спросить лог на предмет наличия обновлений и потом только если эти обновления есть их получить -- причем только новые).
Re[2]: "Живые данные" на html страничках. Как такое сделать?
Здравствуйте, ALEXKSELK, Вы писали: ALE>Вобщем то все достаточно просто -- более того, не слушайте тех кто предлогает лезть во всякие там аяксы.
А что, AJAX это нечто сложное? Тем более, что дальше вы его, по сути, и описываете.
Здравствуйте, ALEXKSELK, Вы писали:
ALE>Вобщем то все достаточно просто -- более того, не слушайте тех кто предлогает лезть во всякие там аяксы. ALE>Для вашей задачи вполне хватит ЯваСкрипта в связке с CGI или типа того. JScript вполне может подгружать нужные данные из веба и динамически обновлять страницу ALE>(обеспечивает полный контроль страницей). Правда факт обновления всервно будет инициироваться пользовательской стороной, но ALE>будет напроядок легковеснее обновления страницы. (Никто ведь не мешает сначал спросить лог на предмет наличия обновлений и потом только если эти обновления есть их получить -- причем только новые).
Ты будешь удивлен, но ты только что описал именно AJAX-подход
Sapienti sat!
Re[3]: "Живые данные" на html страничках. Как такое сделать?
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, ALEXKSELK, Вы писали:
ALE>>Вобщем то все достаточно просто -- более того, не слушайте тех кто предлогает лезть во всякие там аяксы. ALE>>Для вашей задачи вполне хватит ЯваСкрипта в связке с CGI или типа того. JScript вполне может подгружать нужные данные из веба и динамически обновлять страницу ALE>>(обеспечивает полный контроль страницей). Правда факт обновления всервно будет инициироваться пользовательской стороной, но ALE>>будет напроядок легковеснее обновления страницы. (Никто ведь не мешает сначал спросить лог на предмет наличия обновлений и потом только если эти обновления есть их получить -- причем только новые). C>Ты будешь удивлен, но ты только что описал именно AJAX-подход
Конфуз, однако, вышел... Нелюблю когда элементарным вещам придумывают сложные названия.
Re: "Живые данные" на html страничках. Как такое сделать?
Здравствуйте, adontz, Вы писали:
A>Здравствуйте, CleverBoy, Вы писали:
CB>>Позволяют ли эти технологии обновлять странички по инициативе сервера?
A>Нет.
Не нет, а да.
Есть специальная техника, позволяющая это делать. Основная идея в том, что постоянно держится открытое соединение, через которое сервер посылает сообщения. Если серверу слать нечего, то соединение просто держится открытым до появления сообщения. Если соединение неожиданно закрывается (по тайм-ауту например), клиент сразу же открывает новое соединение. После получения клиентом сообщения, так же открывает новое соединение. Эта техника применима к любому протоколу на базе модели request-response.