URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 7379
[ Назад ]

Исходное сообщение
"Обновление веб-страницы"

Отправлено Сырно , 12-Окт-11 21:35 
Привет, opennet!
У меня есть веб-страница, которая меняется обычно раз в 20 минут.
Сейчас, я смотрю - как давно она редактировалась, прикидываю секунды до следующего изменения и отдаю (с небольшим запасом) 'Refresh' HTTP header. Все довольны.
Но вот беда - иногда люди допускают ошибки. И эта самая страница с ошибкой уходит клиентам, а отозвать её уже ни как нельзя. Ошибку заметили спустя минуту, а клиенты обновятся только через 20.
Меня просят сделать так, чтобы клиенты всегда видели текущую версию. Поиск подсказал:
MIME Mixed-Replace
XMLHttpRequest
WebSocket
'Refresh: 1' HTTP header + 204 No Content

Я теряюсь и не знаю что предпочесть, всё было так просто и работало даже без JavaScript`а, а теперь нагромождение технологий. Подскажите оптимальное решение.

Более подробно о том, что я делаю:
Люди собираются на мероприятие. У всех свои телефоны или ноутбуки. Связь какая угодно: Wi-Fi, GPRS, Спутник. Они открывают сайт и руководствуются информацией на экране.
Следовательно работать должно на любом устройстве и при любом способе подключения к сети. Желательно, не расходовать лишнего трафика. Обновление фрагмента страницы не нужно, она и так маленькая и состоит из текста.


Содержание

Сообщения в этом обсуждении
"Обновление веб-страницы"
Отправлено softinfo , 20-Окт-11 00:30 
>[оверквотинг удален]
> Я теряюсь и не знаю что предпочесть, всё было так просто и
> работало даже без JavaScript`а, а теперь нагромождение технологий. Подскажите оптимальное
> решение.
> Более подробно о том, что я делаю:
> Люди собираются на мероприятие. У всех свои телефоны или ноутбуки. Связь какая
> угодно: Wi-Fi, GPRS, Спутник. Они открывают сайт и руководствуются информацией на
> экране.
> Следовательно работать должно на любом устройстве и при любом способе подключения к
> сети. Желательно, не расходовать лишнего трафика. Обновление фрагмента страницы не нужно,
> она и так маленькая и состоит из текста.

почему бы не мониторить изменения на сервере. Посылать асинхронные запросы из клиента каждые 10-20 сек. При обнаружении изменений обновлять страницу всем.

Чем продиктован выбор интервала в 20мин. для обновлений?


"Обновление веб-страницы"
Отправлено Сырно , 20-Окт-11 09:08 
> почему бы не мониторить изменения на сервере.

На сервере известно об изменениях. Нужно сообщить клиентам.

>Посылать асинхронные запросы из клиента каждые 10-20 сек. При обнаружении изменений обновлять страницу всем.

Вы рекомендуете XMLHttpRequest? Да, эта технология поддерживается многими современными мобильными браузерами. Но не будет ли излишнего трафика? И ещё, я не специалист, но мне казалось, что многие устройства отключают интернет при бездействии. Это как-то влияет?

Ещё у меня была идея держать открытое TCP соединение. Принять HTTP запрос, а с ответом подождать. Нагрузка на TCP/IP стек сервера возрастёт, но клиентов не много, все проходят личную регистрацию. Сервер выдержит, но не думаю, что это хорошо работает с мобильным интернетом.

> Чем продиктован выбор интервала в 20мин. для обновлений?

Регламентом мероприятия. Фактическим обновлением задания для людей.