私はこのアプローチに "詐欺"はありません。 mainJSが中断されないように、別のスレッドで実行されます。しかし、正しいエラー処理を実装することを確認してください!予期せぬことが起こった場合は、close
としたいと思います。ここで
は、私は似た何かをしたwebworker JSファイルの例です:
function checkStatus() {
var ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function() {
if(ajaxRequest.readyState == 4) {
self.postMessage(ajaxRequest.responseText);
var timer;
timer = self.setTimeout(function(){
checkStatus();
}, 10000); // 10 seconds
}
}
var queryString = "?"; // hand over i.e. a userID
ajaxRequest.open("GET", "/statusCheck.php"+queryString, true);
ajaxRequest.send(null);
}
this.onmessage = function(e){
checkStatus();
};
これは非常に単純化しています。私のmainJSからのメッセージには、たとえばuserIDやその他の変数が含まれているので、GETまたはPOST引数としてstatusCheck.phpに渡すことができます。 JSON形式の文字列をPHPの応答として使用することをお勧めします。ここでは、ユーザーのメール数を取得します。 self.postMessage()
あなたのmainJSに手を戻し、あなたが好きなものを手にすることができます。 :)