異なるブラウザ間の長年にわたる競争により、開発者が以前は困難だったタスクを実行できるようにする多くのツールが作成されました。これで、ほんの少しのスクリプトを使用して、データをユーザー コントロールにバインドするアプリケーションを作成して、埋め込みプロキシ タイプ コントロールを介してサーバーと通信できるようになります。
Internet Explorer (IE) では、これらには、データをフォーム要素にバインドするために使用される XML データ アイランドと、他のページに移動せずに現在のページ内でサーバーへの接続を作成するために使用される XMLHTTP オブジェクトが含まれます。 。これら 2 つの使いやすい機能を使用して、シンプルなチャット アプリケーションを作成します。このアプリケーションは、UI として機能するいくつかの ASP ページ、クライアント機能を実装する JavaScript、および SQL Server 2000 のビジネス ロジックを完成させる T-SQL で構成されます。
クライアントとサーバーは XML を使用して通信します。 Web サーバーがメッセージ チャンクを受信すると、そのメッセージ チャンクは SQL Server のタイムスタンプ付き MESSAGES テーブルに追加されます。クライアントは、事前に定義された時間間隔に基づいて、最後にサーバーに情報を要求してからデータベースに追加されたメッセージのリストやオンライン ユーザーのリストなどの更新情報をサーバーに要求します。
クライアントは、XMLHTTP オブジェクトを介してサーバーに <action/> を送信します。アクションは、メッセージとユーザー リストを更新するか、新しいメッセージを送信するリクエストです。これらのアクションは、ACTIONS というテーブルに保存されます。サーバーは、対応するリクエストに応答するか、新しいメッセージを受け入れて、それを MESSAGES テーブルに追加します。
サーバーがメッセージ要求に応答すると、最後の要求以降のすべての新しいメッセージのリストが返されます。顧客アクティビティを追跡するために、顧客アクティビティの日時を含む ACTIVITY テーブルを使用します。顧客の ID は、わかりやすい名前のテーブル HANDLES に保存されます。
以下はテーブルを作成するスクリプトです:
CREATE TABLE [dbo].[ACTIONS] (
[action_id] [int] IDENTITY (1, 1) NOT NULL、
[アクション名] [varchar] (50) NULL 、
[アクション記述] [varchar] (255) NULL
) [プライマリ] オン
進みます
。[アクティビティ] (
[ハンドル ID] [int] NULL 、
[アクション時間] [日時] NULL
) [プライマリ] オン
進みます
(
[ハンドル ID] [int] IDENTITY (1, 1) NOT NULL、
[ハンドル] [nvarchar] (63) NULL
) [プライマリ] オン
進みます
。[メッセージ] (
[msg_id] [int] IDENTITY (1, 1) NOT NULL、
[メッセージ] [nvarchar] (255) NULL 、
[アクションID] [int] NULL 、
[アクション時間] [日時] NOT NULL
) ON [PRIMARY]
すべてのデータ操作はストアド プロシージャを通じて完了します。すべてのデータ インターフェイスは、Web サーバーと SQL Server 2000 の間の連絡役として機能する汎用 COM を通じて行われます。 COM オブジェクトは、使用したいメソッド RunSPReturnStream を公開します。このメソッドの最初のパラメータはストアド プロシージャの名前で、2 番目のパラメータはパラメータ配列の配列です。パラメーター配列は、(paraName、paramType、paramLength、paramValue) 形式の単純な配列です。 paramType は、ADO パラメータ タイプ列挙体の 1 つです。 ASP ページは、アクションの受け入れと応答の作成を担当します。これを HandleAction.asp と呼びます。
チャット ページにはチャット メッセージを表示する領域が含まれます。この領域は DIV に含まれる TABLE です。この TABLE は、xmlMessages XML データ アイランドにバインドされています。別の領域には現在のユーザーが表示されます。この領域も DIV に含まれる TABLE であり、xmlUsers XML データ アイランドにバインドされています。ユーザーがメッセージを入力するための TEXTAREA もあります。
-------------------------------------------------- ----------------------------------
この記事の著者: Phillip Perkins は、Ajilon Consulting の請負業者です。彼の経験は、マシン制御、クライアント/サーバーからイントラネット アプリケーションまで多岐にわたります。