1

待機ページでこのjavascript関数を使用して、Webアプリのエクスポートプロセスが実行されているか終了しているかを確認します。

function waitForExport(token) {
    $.ajax({
        type : "GET",
        url : 'export/status',
        data : {
            token : token
        },
        success : function(data) {
            if (data.status == 'running') {
                $('#waitContent').append('<span>RUNNING</span>');
                setTimeout("waitForExport('" + token + "')", 5000);
            }
            if (data.status == 'done') {
                $('#waitContent').append('<div>DONE</div>');
                location.href = "export/results";
            }
        },
        error : function(jqXHR, textStatus, errorThrown) {
            alert(jqXHR.responseText);
        }
    });
}

ChromeとFirefoxで動作しますが、IEでは動作しません。

Internet Explorer 7/8を使用すると、プロセスは常に実行されているように見えます。これは、初回を除いて、他のサーバー要求を行わないためです(Eclipseデバッガーを使用して確認しました)。最初のサーバー応答をキャッシュし、その後サーバーにヒットすることはないようです...

何か案が?

4

1 に答える 1

6

次を使用できます。

cache: false

$.ajax()オプションオブジェクトで。

これは_=[TIMESTAMP]、URLの末尾に(を付けずに[ ])を追加します。これにより、リクエストで異なるクエリ文字列が使用されているため、ブラウザは常に完全に異なるリクエストであると見なします。

于 2012-06-07T13:59:01.620 に答える