2017-02-28 18 views
1

私はwebworkerには新しいですが、私は残りのAPIにxmlhttprequestを送信することができました。しかし、ページがアクティブになるまで、このリクエストを何度も繰り返して(ループで)送信します。 実際に値をリアルタイムで表示したいと考えています。私はデータベースにデータが挿入されると、私のWebワーカーはそのページを更新せずにそのデータを表示する単純なWebアプリケーションを作りたいと思っています。 これを行うにはより良い方法がありますか?親切に私を助けてください。 悪い英語をお詫び申し上げます。webworkerでxmlhttprequestを継続的に送信する方法は?

+0

サーバに 'POST'リクエストをしていますか? – guest271314

+1

これは[webソケット](https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API)には完璧なようです。 – George

+0

私はサーバーにリクエストをしています。私は実際に私のハードウェア(センサー)からウェブにいくつかの読み取り値を表示したい。私のハードウェアは、私のAPIへのポストリクエストを使ってデータベースにデータを格納しています。ウェブワーカーはget requestを使用してデータも表示しています。しかし、Webワーカーは、開始ボタンをクリックして作業を開始すると一度だけ動作します。私は作業者に要求を出し続け、停止しない限りデータを取得してほしい。 –

答えて

1

あなたは.close()Workerで呼ばれる、またはメッセージが.close()を呼び出すためにWorkerのシグナリングWorkerに渡されるまで、サーバーからのストリームを取得するためにEventSourceを使用することができます。

const es = new EventSource("/path/to/server"); 
es.addEventListener("open", function(event) { 
    console.log("event source open") 
}); 
es.addEventListener("message", function(event) { 
    // do stuff with `event.data` 
    console.log(event.data); 
}); 
es.addEventListener("error", function(event) { 
    console.log("event source error", event) 
}); 

button.addEventListener("click", function() { 
    es.close(); 
}); 
関連する問題