Как «подтолкнуть» обновления к отдельным ячейкам в таблице / сетке веб-страниц (ASP.NET)? - PullRequest
2 голосов
/ 08 мая 2009

Я создаю что-то похожее на сайт сравнения цен. Это будет разработано в ASP.NET/WebForms/C#/.NET 3.5. Сайт будет использоваться широкой публикой, поэтому я не имею никакого контроля над клиентской стороной - и приложение не настолько важно для их жизни, что они изо всех сил стараются заставить его работать.

Я хочу иметь таблицу / сетку, которая отображает продукты в строках, поставщиков в столбцах и цены в ячейках. Обновления цен будут поступать (на сервер) непрерывно, и я бы хотел «подталкивать» любые обновления в браузеры клиентов - в идеале только обновлять то, что изменилось. Поэтому, если поставщик А изменит цену на продукт В, я бы хотел немедленно обновить соответствующую ячейку во всех браузерах, которые просматривают эту информацию.

Я не хочу использовать какие-либо плагины для браузера (например, Silverlight). Javascript в порядке.

Какой лучший подход?

Предположительно мои варианты:

1) чтобы клиентская страница постоянно запрашивала обновления на сервере, находила правильную ячейку и обновляла ее; или же 2) позволить серверу отправлять обновления на все открытые страницы браузера, которые прослушивают эти обновления.

Первый вариант кажется наиболее правдоподобным, но я не хочу ограничивать собранную мудрость сообщества SO.

Я счастлив приобрести любые сторонние компоненты (например, сетку), которые могут помочь с этим. У меня уже есть компоненты grid / ajax DevExpress, если они предоставляют что-нибудь полезное.

Ответы [ 3 ]

2 голосов
/ 08 мая 2009

Я думаю, что ваш инстинкт верен, что модель тяги легче построить. iWeasel упомянул Ajax, и я хочу указать вам на пост Дейва Уорда о jQuery, Ajax и PageMethods в Asp.Net. В его блоге есть отличные серии, которые помогут вам достичь того, что вы хотите сделать.

Для проверки подхода Дейва, Рик Страл написал отличную статью также о jQuery и Asp.net, и в своем примере он отображает продукты в виде сетки.

Хотя у меня нет опыта работы с этим плагином jQuery, вы можете изучить Таймер jQuery , чтобы помочь вам с вашими временными интервалами.

1 голос
/ 08 мая 2009

Вы можете взглянуть на несколько так называемых технологий на стороне сервера, таких как - AjaxPush, Comet или даже на некоторые коммерческие продукты, такие как kaazing gateway & lightstreamer

1 голос
/ 08 мая 2009

Я не думал, что вы могли бы "опросить" браузер (IE, Firefox и т. Д.), Поэтому единственный известный мне способ получения данных - это сделать страницу запросить ее.

Как насчет обновления панели обновления AJAX каждые несколько секунд. Таким образом, страница не будет мерцать, и вы будете ограничивать объем данных, отправляемых туда и обратно.

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