Вы можете опросить сервер на наличие обновлений, используя метод setInterval javascript. Это позволит вам отправлять запросы AJAX на сервер через регулярные промежутки времени, чтобы проверять наличие обновлений, и если выполнено какое-либо условие, предупредить пользователя.
Например, вы можете выполнить действие контроллера следующим образом:
[Authorize]
public ActionResult Poll()
{
bool isUpdated = CheckForUpdates(User.Identity.Name);
return Json(isUpdated, JsonRequestBehavior.AllowGet);
}
и в представлении:
var intervalId = window.setInterval(function() {
// send AJAX requests every 4 seconds to check for updates
$.getJSON('@Url.Action("poll")', function(isUpdated) {
if (isUpdated) {
// TODO: use some fancy popup instead of an alert :-)
alert('There are updates');
window.clearInterval(intervalId);
}
});
}, 4000);
Еще одна техника, которую вы можете использовать, - сервер, отправляющий уведомления клиенту при наличии обновлений. HTML5 WebSockets позволяет вам сделать это. Преимущества в том, что он гораздо более оптимизирован, поскольку позволяет избежать непрерывного опроса и многочисленных запросов AJAX, а недостатки заключаются в том, что он пока еще не широко поддерживается браузерами. Современные браузеры поддерживают его, но поскольку он все еще является черновиком, он может быть изменен, поэтому он не очень популярен в публичном Интернете. С другой стороны, если у вас есть контроль над браузерами пользователей, это может быть очень хорошим решением.
Вы можете зайти в блог этого парня , если решите пойти по этому пути.