在页面刷新之前暂停一下javascript

时间:2013-01-23 07:49:33

标签: javascript asp.net settimeout onbeforeunload

我只是Javascript中的新手,但我有一些严重的问题,我在不同的来源搜索了很多个小时,所以我决定发布这个问题。

如何在刷新或关闭asp.net页面之前停止/暂停javascript? 这是代码:

<script type="text/javascript">

    window.onbeforeunload = confirmExit;

    function confirmExit() {

        var connection = new Ext.data.Connection({
            defaultHeaders: {
                'Content-Type': 'application/json'
            }
        });
        connection.request({
            url: 'services/vault/deletewfinstace/'
        });
        refresh();
        //alert("Helloo");
    }

    function refresh() {
        setTimeout(function () { window.location.reload() }, 6000);
    }



</script>

在这段代码中,我在事件上调用了一个javascript函数:window.onbeforeunload,并尝试在函数完成其工作后放置一个setTimeout(),但仍然页面刷新或关闭,而没有正确完成函数的内容。当我在函数结束时使用alert()时,函数内部的内容将成功执行,但对用户来说有些烦人。请帮忙。谢谢。

2 个答案:

答案 0 :(得分:2)

我认为connection.request是异步的。当您发送请求时,JS runner将是空闲的,导致窗口重新加载。如果您希望浏览器在重新加载之前等待,请尝试使请求同步。

答案 1 :(得分:1)

创建一个同步Ajax请求,这将锁定浏览器,直到来自服务器的响应。