Каковы хорошие стратегии для проверки обновлений через веб-страницу? - PullRequest
0 голосов
/ 08 января 2010

Кто-нибудь из вас знает о некоторых хороших стратегиях проверки обновлений на веб-сервере?

Я думаю о длинных строках стартовой страницы facebook и просмотра стека overoverflow здесь. Однако мне нужно загрузить новые данные без перезагрузки всей страницы.

В настоящее время я думаю о том, чтобы иметь «таймер» javascript, работающий через время жизни страниц и опрашивающий веб-сервер, если были введены какие-либо новые данные. Наша целевая область - ~ 2000 браузеров, делающих это одновременно, поэтому я действительно не хочу полномасштабную проверку на равенство старых и новых данных.

Я использую ASP.Net, поэтому я подумал, что хорошим способом для этого было бы сохранить переменную «время последнего сбора данных» в переменной сеанса, а затем обновить это время, если были введены новые данные о том, что этот клиент должен получить. Вам это кажется возможным?

Я не уверен, что я полностью объяснил здесь, поэтому, пожалуйста, задавайте любые вопросы, которые у вас могут возникнуть в комментариях, и я обновлю этот вопрос:)

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 08 января 2010

Я не знаком с .Net, но могу рассказать, как бы я решил эту проблему с помощью Java-сервлетов. Решение в .Net должно быть похожим.

Я бы создал сервлет как ресурс REST с определенным URL-адресом и методом lastModified, который отвечает в зависимости от состояния содержимого (и текущего пользователя). Клиент будет опрашивать с помощью HTTP HEAD текущее состояние ресурса. Только если он был изменен с момента последнего запроса, клиент отправит запрос GET. Если сервер знает, как долго ресурс останется неизменным, он может отправить заголовок expires. Затем клиент начнет опрос после истечения срока действия.

1 голос
/ 08 января 2010

Опрос сервера и использование AJAX для обновления какого-либо контента, возможно, является наиболее распространенным решением, но вы действительно можете использовать push для обновления своей веб-страницы. Это, конечно, более экзотично, но вы можете использовать дуплексную связь Silverlight для передачи контента на страницу.

Томаш Янчук разработал автономную библиотеку javascript , которая будет обрабатывать клиентскую часть функциональности Silverlight.

У него даже есть статья, в которой обсуждаются последствия масштабирования для веб-ферм - http: // tomasz.janczuk.org/2009/09/scale-out-of-silverlight-http-polling.html (удалить пробел - мой статус новичка не позволяет мне ссылаться более одного раза в ответе). Он проделал огромную работу, которая может помочь вам настроить хорошую модель для вашего контента.

1 голос
/ 08 января 2010

Нельзя использовать push-интерфейс для обновления веб-страницы. Так что вам придется тянуть. Просто поразите сервер Ajax и проверьте наличие обновлений.


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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...