Я только что обнаружил следующее (установив несколько точек останова как для клиентского, так и для серверного кода):
Если у вас есть обработчик window.onunload
, он будет выполняться ПОСЛЕ того, как браузер отправит http-запрос на новую страницу.
- Вы переходите на следующую страницу
- Браузер отправляет http-запрос на новую страницу
- Браузер выполняет обработчик выгрузки и просто приостанавливает процесс рендеринга, пока не завершит его выполнение.
- Отображается новая страница.
Я только что проверил это как с Chrome, так и с Firefox.
Как так? Как вы думаете, в чем причины такого странного поведения?
PS. Вот как я это обнаружил: у меня был обработчик выгрузки, который сохранял некоторые данные через ajax. Затем я обнаружил, что новая страница, на которую я переходил, по-прежнему показывает старые данные из БД. Это заставило меня задуматься...