ホームページ >バックエンド開発 >PHPチュートリアル >html - 私のウェブサイトは、動的データをリアルタイムで表示するために使用される PHP + MySQL + Javascript で作成されています。 アドバイスをお願いします。
現在、Ajax ポーリングと Web Socket の 2 つの成熟したソリューションがあります。もちろん後者をお勧めします。
言われたことについて你的Web是由PHP服务端脚本开发,很遗憾Web Socket并不能与PHP建立通信
、私の経験から言えば、これは間違いです。
私は個人的にそれを実践しました(PHPで書かれたオンラインプロジェクトとコマンドラインWebソケットの両方を実装できます)これは基本的に言語に依存しません。 PHP で walkerman と swoole を見てみましょう。
または、これを選択することもできます: http://socket.io/ これは、redis と組み合わせることで実現できます。
現在、ページを更新せずにフロントエンドで事実データを取得するためのテクノロジーは、Ajax と Web Socket の 2 つだけです。これには、2 つのテクノロジーの違いを比較する必要があります。Ajax は完全に Web ベースのデータ取得テクノロジーであり、取得できるデータは、実際には URL フィードバックを使用できる Web サーバー側のスクリプトの結果であることは明らかです。現在の用途、正確に言うと、デザインは比較的シンプルです。ただし、Ajax テクノロジーの大きな欠点は、情報を受動的に取得することしかできないことです。これをアプリケーションのシナリオと組み合わせると、温度は変化していますが、いつ変化しますか?データはいつ更新されますか?明らかに、フロントエンドの JS スクリプトは予測不可能です。できることは、タイマーを設定して n (ミリ) 秒ごとにデータを取得することだけです。今回と前回の間にデータが変化した場合、グラフを更新できます。このような消極的なアプローチでは、取得間隔が長すぎて「リアルタイム」データを反映することが困難になり、無駄な情報(つまり現在のデータ)が大量に読み込まれるという問題が発生します。は前のものと同じです)、そのためサーバーの処理能力が増加します。では、より良い解決策は何でしょうか?もちろんそれはありますが、フロントエンド開発をベースにした Web Socket がこの問題を解決します。サーバーとの通信回線を確立し、相手を問わず積極的にメッセージを送信し、受信側は結果をリアルタイムにフィードバックできます。では、なぜこのテクノロジーを現在のアプリケーションで使用できないのでしょうか?まず、Web は PHP サーバー スクリプトによって開発されていますが、残念ながら、Web Socket は PHP との通信を確立できません。必要なのは、Java ソケット サーバーなど、サーバーに基づいてアクティブなリクエストを保持できるサーバー側スクリプトを開発することです。この記事では、その構築方法についてはあまり詳しく説明しません。
私はマスターではありません。前のセクションで述べたように、表示方法は独自の設計ニーズによって異なります。
ajax で一定の間隔 (1 分ごと、10 秒ごとなど) で読み取ります