Как «воспроизвести» то, что пользователь вводит - MVC - PullRequest
2 голосов
/ 08 сентября 2011

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

Например: пользователь вводит - Моё имяБоб и печатает в Дейве, мне нужно захватить их так, чтобы, когда администратор "воспроизводил", он видел, что именно набрал пользователь. Кроме того, администратор должен иметь возможность воспроизводить это с той же скоростью, 2x скорость иСкорость 4x.

Есть ли простой способ сделать это, кроме необходимости записывать каждое нажатие клавиши с использованием javascript в базе данных и использовать их для воспроизведения?Спасибо

Ответы [ 2 ]

3 голосов
/ 08 сентября 2011

Это в значительной степени проблема на стороне клиента - сервер не знает, что набирается, пока форма не будет отправлена, когда он получает все за один раз.

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

Кроме того, здесь возникает проблема безопасности - что происходитесли кто-то случайно вставит номер кредитной карты, а затем удалит его?В этом отношении, как вы собираетесь обрабатывать копирование / вставку?

В целом, это технически возможно, но это нетривиально и имеет серьезные проблемы с безопасностью / конфиденциальностью.

Если вы настаивали на попыткеэто следующие шаги:

  • Захватывать каждое нажатие клавиши
  • Передавать их с точной отметкой времени на сервер - либо при отправке формы, либо при непрерывном использовании AJAX
  • Записать нажатия клавиш для некоторого идентификатора пользователя / URL / уникальной формы в базе данных
  • (Вероятно, свяжите, что бы форма ни делала с этими данными нажатия клавиши),
  • Напишите страницу, которая может читать всеИнформация о нажатии клавиш, загрузите страницу, на которой она была введена, добавьте javascript / html, чтобы добавить «проигрыватель» поверх обычной страницы
  • Повторите нажатия клавиш.

Как вывидите, это серьезное начинание.

0 голосов
/ 08 сентября 2011

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

$("textarea").bind("keypress", function(e) {
    Post();
}

$(":text, textarea").bind("input paste", function(e) {
    Post();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...