Есть ли способ вызвать событие сервера с помощью jQuery или ASP.NET MVC? - PullRequest
3 голосов
/ 01 апреля 2009

У меня такая ситуация: у меня есть страница, где у меня есть список событий за день. И эти события могут изменить свой статус на «Подтверждено» или «Отменено».

Но когда я, например, нажимаю «Подтверждено», это состояние сохраняется на SQL Server, и это состояние отображается «Подтверждено». Но если другой человек открыл эту же страницу в тот момент, когда я изменил статус события, этот человек не увидит новый статус. Он только увидит, перезагрузит ли страницу.

Я знаю, что есть Ajax set TimeOut, который обновляет страницу через каждые 5 ... 10 ... 15 секунд. Но я подумал, есть ли триггер jQuery или ASP.NET MVC, чтобы при изменении состояния события сервер отвечал обновлением браузера.

Есть ли какое-то решение для этого ??

Спасибо !!

Ответы [ 3 ]

1 голос
/ 01 апреля 2009

Опция 1 : используйте jQuery Timer и обновляйте свой элемент управления на странице каждые X секунд. (Вам не нужно перезагружать всю страницу, только состояния элементов управления с подтвержденными / отмененными статусами и изменять их только в том случае, если сервер вернул новые значения).

Вариант 2 : Вы можете перенести событие на странице со своего сервера с помощью Silverlight 2 +.

Подсказка : При обновлении состояния элемента управления (подтверждено / отменено) также передается начальное состояние. Таким образом, если один пользователь обновил статус с подтвержденного до отмененного, другой пользователь, который попытается обновить этот статус с подтвержденного до отмененного, получит дружественное сообщение об ошибке.

0 голосов
/ 18 апреля 2009

Вы можете использовать асинхронные обработчики в ASP .NET для реализации этого. Это означает, что вы можете подписаться на событие обновления на сервере, и сервер удерживает запрос (который тем временем не потребляет никаких рабочих потоков), а когда состояние обновляется, запрос заканчивается и ответ с новым состоянием отправлено клиенту.

0 голосов
/ 02 апреля 2009

Короче говоря: нет.

Сервер не помнит, куда он отправил страницы. Как только сервер отправляет страницу в браузер, он завершает соединение. Из-за этого сервер не будет знать, куда отправлять инструкции по обновлению или новую страницу. Чтобы выполнять обновления в режиме реального времени на веб-странице, браузер должен инициировать вызов.

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