Какой обработчик событий использовать для записи оставленной страницы - onunload или onbeforeunload? - PullRequest
1 голос
/ 17 мая 2010

Не имея ответов на мои предыдущие вопросы об использовании javascript для измерения времени переворачивания страниц, я начну писать свой собственный код (!).

Чтобы измерить продолжительность связывания, я предлагаю удалить cookie, содержащий метку времени, когда пользователь просматривает страницу, а затем на следующей странице, сравнивая это время с «сейчас» и отправляя запрос URL, который будет регистрировать интервал.

Кажется, есть 2 возможных обработчика, с которыми я мог бы связать первый блок кода - обработчик onunload () или onbeforeunload ()?

Гораздо важнее, чтобы он не работал тихо в браузерах с отсутствующей / неработающей поддержкой обработчика, чем он переносим во всех возможных браузерах.

Есть указатели? Gotchas?

1011 * ТИА *

С

Ответы [ 3 ]

2 голосов
/ 22 октября 2012

Одна вещь, связанная с onunload или onbeforeunload, заключается в том, что любой Ajax-вызов должен иметь свойство async: false. Это предотвращает фактический уход кода до завершения вызова. Кроме этого, см. Ответ Шона Кинси.

2 голосов
/ 17 мая 2010

onbeforeunload не поддерживается Opera и на самом деле предназначен для того, чтобы дать пользователю возможность прервать выгрузку, поэтому вам следует выбрать onunload.

0 голосов
/ 21 июля 2010

Я пытаюсь использовать onunload в Firefox, но кажется, что он не дает Javascript много времени, чтобы делать что-то полезное, поэтому это проблема кросс-браузера Я мог бы хотеть использовать комбинацию обоих обработчиков.

...