Как сделать AJAX-запрос по завершении загрузки страницы, который вызывается window.location.href - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть прослушиватель событий, похожий на

function navBtn() {
$('#navBtn').on('click', (event) => {
    window.location.href = 'someotherfile.html';
    myAJAXrequest();
})
}

Кажется, проблема в том, что, поскольку прослушиватель событий является щелчком, они оба срабатывают.Но к тому времени, когда меня отправляют на другую страницу, запрос AJAX никогда не происходит.Не уверен, как перенаправить на другую страницу, нажав кнопку, когда на этой странице есть контент, который добавляется с помощью вызова AJAX, что не происходит.Есть ли способ проверить, загружает ли новая страница, которую я направляю, в первую очередь, прежде чем запускать AJAX?

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

попробуйте сделать асинхронную функцию myAJAXrequest ()

async function myAJAXrequest(){}; 

function navBtn() {

$('#navBtn').on('click', (event) => {

    await myAJAXrequest();

    window.location.href = 'someotherfile.html';  
})
}

0 голосов
/ 24 февраля 2019

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

function navBtn() {
        $('#navBtn').on('click', (event) => {
            myAJAXrequest();
            setTimeout(function () {
                window.location.href = 'someotherfile.html';
            }, 3000)
        })
    }

здесь я дал задержку в 3 секунды, вы можете увеличить или уменьшить задержку, как вам нравится.

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