0

私のテストサイトでは、ユーザーがビデオを切り替える前に AJAX を使用してビデオに関するテキストをロードし、ajax が正常に戻った後にテキストを入力しようとしています。

AJAX が正常に返され、javascript 関数が使用可能になったかどうかを確認する必要があります。どうすればこれを確認できますか?

AJAX が読み込まれるとすぐに、JavaScript 関数が利用可能になるとすぐに関数を個別に実行できますが、それらがどの順序で実行されるかはわかりません。

4

1 に答える 1

1

イベントとコールバックを使用して何かを行うことができます。「機能が利用可能になりました」という言葉の意味はまだわかりませんが、ここで頭に浮かんだことから始めてください。

// 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);
于 2012-12-21T01:08:11.600 に答える