Как я могу автоматически заставить страницу сохранять текущее время в БД с интервалом в 5 минут без обратной передачи?

#c# #asp.net

#c# #asp.net

Вопрос:

По сути, у меня есть веб-приложение на C #, в котором пользователь просматривает потоковое видео. Пока они просматривают его, у меня в коде запускается таймер. Когда они заканчивают просмотр видео, они нажимают кнопку отправки, которая учитывает разницу между временем начала и временем окончания и отправляет мне по электронной почте общее время просмотра.

Проблема в том, что если они теряют сеанс или их подключение к Интернету прерывается на короткое время, время теряется, и у меня нет доказательств того, как долго они просматривали 1,5-часовое видео.

Мне было интересно, с чего начать, чтобы она автоматически сохраняла время в базе данных, например, каждые 5 минут за кулисами, не влияя на потоковое видео или отправку обратно, таким образом, у них есть запись о том, сколько времени просмотра было до потери соединения.

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

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

Ответ №1:

Мы использовали информацию из этого сообщения в блоге, чтобы выполнить это в наших приложениях. Есть примеры кода, которые точно показывают, как это сделать. Отрегулируйте

 window.setInterval('SaveUserInput()', 10000);
  

строка по мере необходимости для изменения интервала.

Ответ №2:

Вы можете сохранить время начала в скрытом поле при загрузке страницы, а затем использовать javascript для отправки в веб-сервис с заданным интервалом времени начала.

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

1. Ответ @David Stratton ссылается на полный пример этого шаблона.

Ответ №3:

Одним из вариантов было бы настроить вызов ajax для общения с сервером через интервал, чтобы сказать «Я все еще здесь» — если ваш вызов ajax отправляет идентификатор видео или какой-либо другой идентификатор сеанса, он может обновить вашу базу данных с соответствующим временем.

Я бы посоветовал изучить возможность использования jQuery для этого вместе с [webMethods]. Это упрощает выполнение. Вот хорошо написанная статья, в которой рассказывается о том, как это сделать с помощью asp.net : http://dotnetslackers.com/articles/ajax/Using-jQuery-with-ASP-NET.aspx

Ответ №4:

Вы говорите «без обратной передачи» — но означает ли это обратную передачу целой страницы? В противном случае должно быть довольно легко выполнить обратный вызов AJAX на сервер из некоторого JavaScript. Вы могли бы использовать библиотеку jQuery, чтобы легко выполнить вызов. Вот довольно хорошая страница, на которой обсуждается, как вызвать метод страницы из jQuery: http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods /

Ответ №5:

Предложения по использованию jQuery или другой библиотеки AJAX для вызова ajax каждые 5 минут хороши, но если вы новичок в этом, вы можете использовать asp.net объект таймера расширений ajax (Панель инструментов-> Расширения AJAX-> Таймер). его не сложно использовать, он следует типичной модели, управляемой событиями, как и другие ASP.NET элементы управления