これには setTimeout を使用しないでください。
jquery の ajaxのコールバック機能を使用するだけです。success
コールバックまたは新しいdone
ヘルパーで「after」コードを実行します。
$.ajax({
url: "test.html"
}).done(function() {
// do things after the answer has been received
});
編集 :
jquery を使用せず、すぐにトリガーしない場合:
var httpRequest = new XMLHttpRequest();
var requestDoneAndOK = false;
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
requestDoneAndOK = true;
}
}
};
httpRequest.open('GET', url);
httpRequest.send();
そして、「登録」ボタンがクリックされrequestDoneAndOK
たら、チェックして、それが真である場合は他の関数を呼び出すだけです。
編集2:
2 つの条件が実現するとすぐに、コードが実行されます: 回答が受信され、登録ボタンがクリックされます。
var registerClicked = false;
var ajaxAnswerReceived = false;
function check() {
if (registerClicked && ajaxAnswerReceived) {
// do the thing !
}
}
var httpRequest = new XMLHttpRequest();
var requestDoneAndOK = false;
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
ajaxAnswerReceived = true;
check();
}
}
};
httpRequest.open('GET', url);
httpRequest.send();
document.getElementById('registerButton').onclick = function(){
registerClicked = true;
check();
};