ajax リクエストが送信されるまでブラウザでページを開いたままにしておきたいと思います。これは私がそれがどのように見えるかを想像するものです
var requestsPending = 0;
window.onbeforeunload = function() {
showPleaseWaitMessage();
while(requestsPending > 0);
}
// called before making ajax request, atomic somehow
function ajaxStarted() {
requestsPending++;
}
// called when ajax finishes, also atomic
function ajaxFinished() {
requestsPending--;
}
残念ながら、JS はマルチスレッドに対応していません。私の理解では、コールバック (ajaxFinished) は決して実行されません。これは、ブラウザが while ループの実行が終了するまで待機しようとするため、永久にループするためです。
これを行う正しい方法は何ですか?JS に to-do リストの次のことを評価させてから、while ループに戻るように強制する方法はありますか? または、ajax 呼び出しで「結合」する構文はありますか? ajaxにDWRを使用しています。
ありがとう -マックス