Я попробовал за, "разгружаются" и "beforeunload", связывающий в следующем коде, но ни один из браузера не отправляет запрос:
$(window).bind('unload', function(){
$.ajax({cache: false,
dataType: "script",
url: "test.php"
});
});
Какое-либо предложение?
Браузер не дожидается завершения этого кода ... он работает нормально :) Добавьте предупреждение ('привет')
, чтобы увидеть, как оно работает.
Проблема, которую вы видите, типична для проблем unload
, браузер уходит задолго до того, как запрос будет запущен в вашем случае ... и это действительно должно быть, никакой код, который вы запускаете, не должен я должен завершить, прежде чем мне будет разрешено перейти на следующую страницу. Именно так ведет себя unload
. Вы можете сделать вызов синхронным, чтобы удерживать пользователя там, но, пожалуйста, не делайте этого .
Событие unload
было создано в окне в основном для очистки всего, что осталось в DOM, которое вам нужно, тем более, когда сборка мусора была не такой хорошей, как сейчас (и все еще не t в IE) ... на самом деле он не был разработан с учетом AJAX или отслеживания метрик.
Просто установите опцию async в false.
$(window).bind('unload', function(){
$.ajax({
cache: false,
async: false,
dataType: "script",
url: "test.php"
});
});