#c# #javascript #asp.net #server-sent-events
#c# #javascript #asp.net #сервер-отправленные-события
Вопрос:
Кажется, я не могу найти способ сделать это, поэтому я решил спросить здесь. Я совершаю asp.net сайт, который использует данные из базы данных SQL Server. Я использую JavaScript для получения данных и форматирования их так, как я хочу.
Проблема в том, что я хочу использовать события, отправленные сервером, чтобы получить новую запись в моей базе данных и отобразить ее на странице сайта. До сих пор единственные примеры, которые я видел, были с таймерами на стороне сервера и с периодом, в течение которого они отправляют данные в javascript. Но, похоже, я не могу понять, как мне следует это сделать, чтобы при попадании новой строки в базу данных запускалось событие. Это должно быть сделано на стороне сервера, но я понятия не имею, с чего начать.
Комментарии:
1. SignalR похож на сокет. ввод-вывод для .net land
2. Мне нужно использовать события, отправляемые сервером, к сожалению, я видел эту идею с SignalR, но здесь это не годится
3. если вы хотите поговорить с источником событий JS, это всего лишь слегка измененный http-ответ. вы можете использовать sql-триггер / хранимую процедуру для запуска ответа sse (если вы транслируете) или отправить его из того же места, где вы общаетесь с базой данных и клиентом.
Ответ №1:
SqlDependency:
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldependency.aspx
http://dotnet.dzone.com/articles/c-sqldependency-monitoring
Использование класса SqlDependency — хороший способ повысить эффективность вашего приложения, управляемого данными (будь то Web или Windows Forms), за счет устранения необходимости постоянного повторного запроса к базе данных для проверки изменений данных.
Вот как вы используете класс SqlDependency для мониторинга изменений данных в вашей базе данных без необходимости использовать что-то вроде управления таймером для повторного запроса через определенные промежутки времени.
Вот старая книжная метка: