ホームページ  >  記事  >  php教程  >  データ転送を最小限に抑え、データをクライアント側に保存します

データ転送を最小限に抑え、データをクライアント側に保存します

WBOY
WBOYオリジナル
2016-06-13 12:42:56982ブラウズ

プログラムを他の言語に出力することは、プログラマーが好むことの 1 つです。WEB には、
という 2 つの異なるプログラミング環境があります。HTTP プロトコルの定義によれば、
です。クライアント側で他の言語を出力するサーバー側プログラムを作成できます。クライアント側の出力としてサーバー側の言語と JavaScript を選択しました。この質問では、このソリューションを使用して
クライアントにデータを保存し、チャット ルーム、ニュース システム、または
実装したいその他のアプリケーションのサーバーとクライアントにアクセスする方法を説明します (ブラウザ) 最小限のデータ転送。

次のサポートが必要です:
PHP4
JavaScript
フレーム

主なアイデア:

私たちは HTTP に基づいてチャット ルームを開発しようとしていますPHP を使用したプロトコル (HTTP CHAT ROOM)。
HTTP プロトコルはチャットには適していませんが、ファイアウォールやプロキシの影響を受けることはありません。
PHP は、JAVA アプレットを使用せずにこの機能を完全に実装できます。部屋には主に 2 つの問題があります。
まず、IE は SERVER PUSH テクノロジをサポートしていないため、CLIENT PULL テクノロジしか使用できません (つまり、
クライアントは自動的に更新されます)。2 番目の問題はさらに深刻です。クライアント上で更新するため、サーバーは毎回すべてのメッセージを送信する必要があり、これがチャット ルームの遅延の主な原因でもあります。
フレーム テクノロジー (フレーム) を使用すると、他のページを再ロードすることなく、指定したページを更新できるため、
サービス/クライアント (C/S) データ送信の量を削減できます。私たちのモデルはこのスキームに基づいています。
"master" ファイル: フレームワーク構造を定義します
"loader" ページ: データをインポート
"display" ページ: データを表示
このスキームでは、"loder" ボックスは "x" ごとに自動的に更新されます" 秒 ——私たちのアイデアは、「マスター」
ファイルにデータを保存することで、「ローダー」ページはクライアントが持っていないサーバーからのデータのみを要求する必要があるようにすることです。タイムスタンプ (タイムスタンプ) にマークを付ける 各メッセージは、どのメッセージをクライアントに送信する必要があり、どのメッセージを送信する必要がないのかを決定します。 PHP4.0 のセッション管理 (セッション)
を使用して、クライアントの最終更新タイムスタンプ (最終タイムスタンプ) を保存し、タイムスタンプがサーバーとクライアントの両方から見えるようにします。 「ローダー」ファイル
が「マスター」ファイルからデータを受信すると (注: 「マスター」ファイルは大きいですが、送信されるのは 1 回だけです)、表示ページ (「diaplay」)
を更新します。 "display" ページは単に、"master" ファイル内の "displaymsgs()" という名前の JavaScript 関数を呼び出して、メッセージを表示します。この関数は、「マスター」ファイルに保存されているデータを動的に表示します。
1.ブラウザが「マスター」ページ (フレーム) をリクエストし、「マスター」ページがサーバーからクライアント (ブラウザ) に送信され、「マスター」
ファイルがフレームを生成し、「ローダー」と「 「display」ページがクライアントに転送されます。
2.サーバー側では、「loader」ファイルが分析されます。クライアントが「timestamp」セッション変数を定義していない場合、「loder」ファイルはサーバーからすべてのデータを
取得し、データを保存するための JavaScript コードを生成します。データを「マスター」ファイルに保存し、「タイムスタンプ」変数を
セッション変数として保存します。
3. 「loder」ページは、「display」ページを更新するための JavaScript コードを生成します。
4.更新リクエストにより、「表示」ページが「diaplaymsgs()」JavaScript 関数を呼び出してデータを表示します
5. 「x」秒ごとにステップ 2 に戻ります

次のように考えることができます:
======================= == ===============================
「マスター」ファイル: 非常に大きく、displaymsgs() 関数を定義しますストレージデータと初期値。
「ローダー」ファイル: 小さい、サーバーからデータを取得し、JavaScript コードを生成します
「ディスプレイ」ファイル: 非常に小さい、「マスター」ファイルの「diaplaymsgs()」関数を呼び出します
=== = ================================================ = ===
注: 「マスター」ファイルは 1 回のみ転送されます
「loder」および「display」ファイルは「x」秒ごとに更新されます
「loder」は、最初の転送時には非常に大きい場合がありますは転送されますが、将来的には非常に小さくなります
"diaplay" ファイルは変更されません

上記のアイデアがまだよくわからない場合は、以下にチャット ルームを作成して説明します。このチャット ルームは単純なデモンストレーション
のためのものなので、あまり役に立たないかもしれませんが、このアイデアはより複雑なチャット ルームを構築するために間違いなく使用できます。このアイデアはチャット ルームだけのものではないことを覚えておいてください。 :)

まず、mysql データベース フォームを使用してください:
============================
testeable テーブルを作成 (
タイムスタンプ日時、
メッセージテキスト
);
=================== = =
「マスター」ファイルは次のとおりです:
================================= ==== ===========

4 秒ごとに更新 --> ================ ====================

「フォーム」ページ:
================ ====

session_start();

if (!isset($timestamp )) {
$timestamp=0;

// フォームを表示し、「タイムスタンプ」変数を生成します。
if (isset($msg)) {
$dab=mysql_connect("localhost","root","seldon") );
mysql_select_db("testbase",$dab);
$query="testeable(timestamp,message) 値に挿入(now(),'$msg')";
my sql_query($) query,$ dab);
// タイムスタンプ以降のすべてのメッセージを取得します
$query="select * from testeable where timestamp>'$tt'";
$result=mysql_query ($query,$dab) ;
$ msgs = array(); $ i = 0; i ) {
?> 🎜>
?>

" post">
メッセージ: ========================== ==================
注: これにより、スピーチが「フォーム」ページに送信されると、「表示」ページがすぐに更新されます。スピーカーはすぐに話して
すぐに表示します。これはよりリアルタイムです。

ご覧のとおり、このチャット ルームは非常にシンプルです。これは最小限の顧客/サービス (C/S) データ転送スキルです。このテクノロジーを使用すると、最小限のデータ転送を実現できます。もう一度、次のことを思い出してください。このテクノロジーはチャット ルーム向けではありません。
=========================================== === ========
上記は win98 apache1.3 php4.03 プラットフォームでテストされ、合格しました。
ご提案やご質問がございましたら、飛陽コミュニティ (http://feiyschool.51.net) にご連絡ください。
または feiyhy@sina.com までメールをお送りください。
アドバイスをお願いいたします。ありがとうございます。 !
================================
英語原作者: ルイス・アルゲリッチ、アレハンドロ・ミトロウ
英語 原文の URL: http://www.phpbuilder.com

[この記事の著作権は著者と Aosuo.com が共有しています。転載する必要がある場合は、著者を明記してください。と出典]

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。