Вызов JavaScript Ondemand на окне разгружает использование jQuery

Я попробовал за, "разгружаются" и "beforeunload", связывающий в следующем коде, но ни один из браузера не отправляет запрос:

$(window).bind('unload', function(){
       $.ajax({cache: false,
        dataType: "script",
            url: "test.php"
        });
    });

Какое-либо предложение?

5
задан tshepang 12 May 2014 в 16:26
поделиться

2 ответа

Браузер не дожидается завершения этого кода ... он работает нормально :) Добавьте предупреждение ('привет') , чтобы увидеть, как оно работает.

Проблема, которую вы видите, типична для проблем unload , браузер уходит задолго до того, как запрос будет запущен в вашем случае ... и это действительно должно быть, никакой код, который вы запускаете, не должен я должен завершить, прежде чем мне будет разрешено перейти на следующую страницу. Именно так ведет себя unload . Вы можете сделать вызов синхронным, чтобы удерживать пользователя там, но, пожалуйста, не делайте этого .

Событие unload было создано в окне в основном для очистки всего, что осталось в DOM, которое вам нужно, тем более, когда сборка мусора была не такой хорошей, как сейчас (и все еще не t в IE) ... на самом деле он не был разработан с учетом AJAX или отслеживания метрик.

6
ответ дан 14 December 2019 в 08:46
поделиться

Просто установите опцию async в false.

$(window).bind('unload', function(){
   $.ajax({
    cache: false,
    async: false,
    dataType: "script",
        url: "test.php"
    });
});
1
ответ дан 14 December 2019 в 08:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: