JavaScript関数が終了するのをリッスンする方法はありますか? 関数が完了したときに設定できるトリガーはありますか?
AJAX オブジェクトが DB からデータを取得しているときに、ユーザー インターフェイスの難読化手法 (BlockUI) を使用しようとしていますが、関数呼び出しの最後に配置しても、関数は必ずしも最後に実行されるとは限りません。
例:
function doStuff() {
blockUI();
ajaxCall();
unblockUI();
};
unBlockUI を起動する前に、doStuff が ajaxCall の完了をリッスンする方法はありますか? そのまま、関数を線形に処理し、各オブジェクトを順番に呼び出してから、個別のスレッドを生成して各オブジェクトを完了します。したがって、AJAX 呼び出しが完了するまでに 10 ~ 15 秒かかる場合がありますが、関数の線形実行により、ほんの一瞬だけユーザーをブロックしています。
これにはあまり洗練されていない方法があります... AJAX 関数によって設定された戻り値が true またはその性質の何かに設定されている場合にのみ、ループを終了させます。しかし、それは不必要に複雑で非効率的です。