0

私は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>

このコードでは、window.onbeforeunload というイベントで JavaScript 関数を呼び出し、関数が作業を完了した後に setTimeout() を配置しようとしましたが、関数の内容を適切に完了せずにページが更新または閉じられます。関数の最後で alert() を使用すると、関数内のコンテンツは正常に実行されますが、ユーザーにとってはやや面倒です。助けてください。ありがとうございました。

4

2 に答える 2

2

connection.requestそれは非同期だと思います。リクエストを送信すると、JS ランナーが解放され、ウィンドウがリロードされます。リロードする前にブラウザを待機させたい場合は、リクエストを同期化してみてください。

于 2013-01-23T07:53:18.853 に答える
1

同期 Ajax リクエストを 1 つ作成します。これにより、サーバーからの応答があるまでブラウザがロックされます。

于 2013-01-23T07:53:04.930 に答える