私のテストサイトでは、ユーザーがビデオを切り替える前に AJAX を使用してビデオに関するテキストをロードし、ajax が正常に戻った後にテキストを入力しようとしています。
AJAX が正常に返され、javascript 関数が使用可能になったかどうかを確認する必要があります。どうすればこれを確認できますか?
AJAX が読み込まれるとすぐに、JavaScript 関数が利用可能になるとすぐに関数を個別に実行できますが、それらがどの順序で実行されるかはわかりません。
私のテストサイトでは、ユーザーがビデオを切り替える前に AJAX を使用してビデオに関するテキストをロードし、ajax が正常に戻った後にテキストを入力しようとしています。
AJAX が正常に返され、javascript 関数が使用可能になったかどうかを確認する必要があります。どうすればこれを確認できますか?
AJAX が読み込まれるとすぐに、JavaScript 関数が利用可能になるとすぐに関数を個別に実行できますが、それらがどの順序で実行されるかはわかりません。
イベントとコールバックを使用して何かを行うことができます。「機能が利用可能になりました」という言葉の意味はまだわかりませんが、ここで頭に浮かんだことから始めてください。
// Check if all conditions are complete.
function completionChecker(limit, callback) {
// Private count variable will outlast scope due to closure.
var count = 0;
// Return a callback for the event.
return function(event) {
if(++count == limit) {
// Call the callback supplied.
callback();
// Remove the event listener, we've reached the limit.
this.removeEventListener("finished", arguments.callee, false);
}
}
}
// Some function to perform when everything is complete.
function myFunc() { /* Do stuff */ }
// Create a custom event.
var myEvt = new CustomEvent("finished");
// Add a listener to the document. After 2 "finished" events, call myFunc.
document.addEventListener("finished", completionChecker(2, myFunc), false);
// Now in your ajax success callback, and wherever your other function
// has "become available", fire the "finished" event.
document.dispatchEvent(evt);