2017-01-15 5 views
-2

これはJQueryなしでどのように行うことができますか?AJAXがネイティブJSでの処理を終了したとき、どうすればわかりますか?

xhr.finished { 
    alert(AJAX has finished it's process and the HTML has been updated); 
} 
+0

あなたは、jQueryのが何を行う 'onreadystatechange'コールバックを登録する必要があると思います:あなたのケースのために、私はあなたのrunScript関数にコールバック関数に追加することをお勧めします。 https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest – Thilo

+0

'onload'とは何ですか?誰がそれを提供しますか? – Thilo

+0

'fetch' APIを呼び出す - これはすごく面白いでしょう... – lonesomeday

答えて

0

あなたは間違っているイベントハンドラをアタッチしている... onreadystatechangeを試してみてください。私はこのような何かをしたいと思います

は、ここに私のコードです。

function runScript(params, callback) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open('POST', 'scripts.php', true); 
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
    xhr.onreadystatechange = function() { 
     if(xhr.readyState === XMLHttpRequest.DONE) { 
      callback(xhr.status, xhr.responseText); 
     } 
    }; 
    xhr.send(encodeURI(params)); 
} 

runScript('foo=bar', function finished(status, response) { 
    console.log('It is done...'); 
}); 
+0

onreadystatechangeは最後の10年です... loadstart、 progress、load、timeout、error、abort、loadendイベントは、少なくとも2008年以来XHRを使用する方法です –

関連する問題