Самый эффективный способ создать обратный вызов БД в ASP.NET MVC

#c# #javascript #asp.net #sql #asp.net-mvc

#c# #javascript #asp.net #sql #asp.net-mvc

Вопрос:

У меня есть ASP.NET Веб-страница MVC, которая в основном отображает строки таблицы в базе данных MS SQL через фильтр даты. Я хотел бы обновить представление веб-страницы новым списком строк в то время, когда новая строка вставляется в таблицу базы данных.

Каков наиболее эффективный способ достижения этой цели? По сути, я хочу создать обратный вызов на сервер базы данных из моего javascript, чтобы обновить пользовательский интерфейс новыми результатами.

Предположим, что количество строк в таблице базы данных велико.(~ 1 миллион)

Спасибо, cas

Комментарии:

1. Правильное решение (push или poll) будет зависеть от того, как часто строки добавляются в таблицу.

2. строки добавляются так часто, скажем, через секунду.

Ответ №1:

Если обновления БД происходят очень часто, то вы можете продолжить с помощью метода опроса с определенным интервалом. В противном случае — вы можете рассмотреть использование кэширования с зависимостью Cache SQL, которая даст вам возможность аннулировать кэш, когда что-то меняется в серверной части.

Поскольку вы упомянули, что существует около миллиона записей, я предполагаю, что вы продумали бы оптимизацию запросов / индексы и т.д. Для повышения производительности.

Ответ №2:

Самый простой способ — через опрос.

Опрос с определенным интервалом.

Предполагая, что вы используете первичные ключи int, передайте первичный ключ последней строки через javascript методу action.

Выберите в методе action, где id > lastrow (он же новые строки).

Передавайте новые строки обратно из контроллера в формате json и визуализируйте их с помощью javascript на стороне клиента. Обновите значение «первичный ключ последней строки» для будущего опроса.

Ответ №3:

Вы можете использовать Websockets, который поддерживает двунаправленную связь. Вы можете использовать SuperWebSocket, сервер .NET websocket.

Комментарии:

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