プログラムを他の言語に出力することは、プログラマが好むことの 1 つです。WEB には
クライアント (ブラウザ) 側とサーバー側の 2 つの異なるプログラミング環境があります。サーバー プログラムを他の言語で出力します。クライアント出力としてサーバー言語と JavaScript を選択しました。この質問では、このソリューションを使用してクライアントにデータを保存し、チャット ルーム、ニュース システム、または実装したいその他のアプリケーションでサーバーとクライアント (ブラウザー) 間の通信を実現する方法を説明します。
次のサポートが必要です:
PHP4
JavaScript
フレーム
主なアイデア:
私たちは PHP を使用して HTTP プロトコルに基づいたチャット ルーム (HTTP CHAT ROOM) を開発しようとしていますが、
HTTP プロトコルはそうではありませんチャット プロトコルには適していますが、ファイアウォールやプロキシの影響を受けません。
PHP は、JAVA APPLETS を使用せずにこの機能を完全に実装できます。
まず、IE は SERVER PUSH テクノロジをサポートしていないため、したがって、CLIENT PULL テクノロジ (つまり、クライアントの自動更新) のみを使用できます。2 番目の問題はさらに深刻です。アイデアはクライアント上で更新することであるため、サーバーは毎回すべてのメッセージを送信する必要があり、これは大量のメッセージを送信することを意味します。この記事では、フレーム テクノロジ (フレーム) を使用すると、他のページをリロードせずに指定したページを更新できるため、サービスや顧客の数が減少します。 /S) データ送信量。私たちのモデルはこのスキームに基づいています。
"master" ファイル: フレームワーク構造を定義します
"loader" ページ: データをインポートします
"display" ページ: データを表示します
このスキームでは、"loder" ボックスは "x" 秒ごとに自動的に更新されます - 私たちのアイデアは、データは「マスター」
ファイルに保存されるため、「ローダー」ページはクライアントが持っていないデータをサーバーに要求するだけで済みます。タイムスタンプ
を使用して各メッセージを記憶し、どのメッセージをサーバーに送信する必要があるかを決定します。クライアントは送信する必要はありません。 PHP4.0 のセッション管理 (セッション) を使用してクライアントの最終更新タイムスタンプ (最終タイムスタンプ) を保存し、タイムスタンプがサーバーとクライアントの両方に表示されるようにします。 「ローダー」ファイル
が「マスター」ファイルからデータを受信すると (注: 「マスター」ファイルは大きいですが、転送されるのは 1 回だけです)、表示ページ (「diaplay」)
と「表示」ページを更新します。このページは、「マスター」ファイル内の「displaymsgs()」という名前の JavaScript 関数を呼び出して、メッセージを表示するだけです。この関数は、「マスター」ファイルに保存されているデータを動的に表示します。以下は一般的なフローチャートです。
1.ブラウザが「マスター」ページ(フレーム)をリクエストし、「マスター」ページがサーバーからクライアント(ブラウザ)に送信され、「マスター」
ファイルがフレームを生成し、「ローダー」と「ディスプレイ」が生成されます。ページはクライアントに転送されます。
2.サーバー側では、「loader」ファイルが分析されます。クライアントが「timestamp」セッション変数を定義していない場合、「loder」ファイルはサーバーからすべてのデータを取得し、データを「master」ファイルに保存され、「timestamp」変数がセッション変数として保存されます。
3. 「loder」ページは、「display」ページを更新するための JavaScript コードを生成します。
4.更新リクエストにより、「表示」ページが「diaplaymsgs()」JavaScript 関数を呼び出してデータを表示します
5. 「x」秒ごとにステップ 2 に戻ります
次のように考えることができます:
============================= == =========================
「マスター」ファイル: 非常に大きく、displaymsgs() 関数を定義し、データと初期値を保存します。
「ローダー」ファイル: 小さい、サーバーからデータを取得し、JavaScript コードを生成します
「ディスプレイ」ファイル: 非常に小さい、「マスター」ファイルの「diaplaymsgs()」関数を呼び出します
========= = ===============================================
注意事項: 「マスター」ファイルは一度だけ転送されます
「loder」ファイルと「display」ファイルは「x」秒ごとに更新されます
「loder」は最初に転送されるときは大きいかもしれませんが、後で小さくなります
「diaplay」ファイル変更はありません
上記の考え方がまだよくわからない場合は、以下にチャット ルームを設けて方法を詳しく説明します。このチャット ルームは単なるデモンストレーションのためのものですので、あまり役に立たないかもしれませんが、間違いなく使用できます。このアイデアは、より複雑なチャット ルームを構築することです。このアイデアはチャット ルームだけを対象としたものではないことに注意してください。 :)
まず、mysql データベース フォームを使用してください:
============================
create table testeable (
timestamp datetime 、
================================================================== )function displaymsgs(){display.document.write( '< br>'); =====================================
「表示」ファイルの内容:
======================
= ================= ==
「表示」ファイルは非常に小さいですか?:)
「ローダー」ファイル:
================================================パスワード "); // データベースを開きます
MySQL_SELECT_DB (" TestBase ", $ DAB);
// クライアントが持っていない情報を見つけます $ quily =" select * from testeable where timestamp & gt; '"; $ result = mysql_query ($ Query, $ dab);
$ msgs = array ();
// このサイクルでは、最新のニュース/データを保存し、「TimestAmp」を現在の最大値に設定します ( $ res = mysql_fetch_array($result))
s["timestamp"]; // サーバーストアから取得した最新のデータを「マスター」ページに配置します (注: 上部のウィンドウを指すには「top」を使用します) (マスター)
「top」を使用して、一番上のウィンドウ (マスター) をポイントします
.lines[top.lines.length]=" ";
「表示」ページを更新するコード? & Gt;
top.display.Location.Reload ();
& lt;/script & gt;
& lt;! 「loader」ページを 4 秒ごとに更新する JavaScript のメソッド -->
"