在页面完成加载时,如何提出AJAX请求,这是由window.location.href触发的



我有一个事件听众,例如

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

问题似乎是,由于事件侦听器是单击,因此他们都被触发了。但是到我被发送到另一页时,AJAX请求永远不会发生。不确定如何通过单击按钮将其重定向到另一个页面时,当该页面具有使用Ajax调用添加的内容时,就不会发生。是否有一种方法可以在触发Ajax之前先检查我是否首先要加载的新页面?

您可以使用settimeout函数,它将延迟重定向一段时间,然后在那段时间内执行您的ajax。这是示例代码。

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

在这里,我给出了3秒的延迟,您可以按照自己的意愿增加或减少延迟。

尝试制作" myajaxrequest()" async函数

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

最新更新