参考文献:
サーバー(サーバー送信されるイベント)がHTML5シナリオは何であるイベントを送信するには?
ポーリングの前端に加えて、「背景情報プッシュ機能」、scoket、サードパーティのサービス(例えばwilddogなど)、時間は良い解決策であることはありません。ただ、本当に新しい発見:HTML5サーバーのEventSource(サーバー・送信されるイベント)イベントを送信します
全体的な経験は、ソケットの簡易版です。そしてないソケットの代わりに、シーンに合わせだけで、クライアントに耳を傾ける例サービス側にメッセージを送信する必要を必要としません。
問題がまだあります:実際には、世論調査では3秒です。しかし、私はAPIは、周波数を設定することができますかわからない......
index.htmlを
<!DOCTYPE HTML > < HTML のlang = 'en'と> < 頭> < メタのcharset = 'UTF-8' > </ ヘッド> < 身体> < div要素のid = 'アプリ' > </ DIV > </ ボディ> < スクリプト> constのアプリ= のdocument.getElementById(' アプリ' ) constのソース= 新しいのEventSource(" のhttp: / * * *のEventSourceサポートされているイベント、3 ...ある * 「イベント処理メソッド」、「名前」、「ヘルプ」 サーバーへの接続が成功したときに生成を開く時開く メッセージは、イベントがonMessageのサーバに送信し受信したときに生成される エラーが発生した場合には、 ONERROR生成時 * / source.onmessage = E => { app.innerHTML + = e.data + ' <BR> ' } </ スクリプト> </ HTML >
SSE.php
<?PHPの ヘッダ( 'Content-Typeの:テキスト/イベントストリーム' ); ヘッダ( 'のCache-Control:キャッシュなし' ); $時間 = DATE( 'R&LT' ); / * * *⚠️注意点 * 1.情報は、PHPを使用してプッシュする"\ nは\ n"は終わりをマークします。 *テストの後、そうでない場合に「\ N \ N」は終わりを示します。 *その後、クライアントがプッシュされた値を受信しません。 * * 2.メッセージ形式は押さなければならない"データ:コンテンツ\ N- \ N-" * / エコー "データ:サーバーの時刻::{ $時間 } \ N- \ N-" ; フラッシュ();
次のような効果があります