AJAX время, проведенное на сайте - PullRequest
0 голосов
/ 02 апреля 2012

Мы проводим онлайн-опрос, поэтому хотим подсчитать потраченное время. используя javascript и php, мы обнаружили, что затраченное время не является точным на 100%.

Исходный скрипт отправляет запросы к серверу каждые 5 секунд и обновляет время в базе данных.

Я провел исследование и обнаружил, что setTimeOut и setInterval совсем не точны. Так какой же лучший способ сделать это?

Я заменил функцию Ping на другую, которая вычисляет разницу между отметкой времени предыдущего пакета и now (); однако это не совсем точно.

Пожалуйста, сообщите, если есть какие-либо другие решения описанной проблемы.

Ответы [ 3 ]

2 голосов
/ 02 апреля 2012

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

2 голосов
/ 02 апреля 2012

Почему бы вам не прослушать событие «onunload» документа и отправить одно сообщение, чтобы узнать, когда пользователь покидает вашу страницу. Учти это; Когда пользователь начинает заполнять ваш сервер, вы отправляете сообщение, а когда он / она покидает вашу страницу, вы отправляете еще одно и измеряете время между этими сообщениями, чтобы суммировать общее время

0 голосов
/ 02 апреля 2012

Если вы хотите отправлять запросы на сервер каждые 5 секунд, вы можете отправить текущее время (используя new Date().getTime()) в запросе, который отправляется с клиента на сервер.

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

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

Возможно, вы также захотите отправить запросы на события размытия и фокусировки документа.Эти события отслеживают, когда пользователь уходит и возвращается на вашу страницу, не закрывая страницу вниз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...