異なるブラウザ間の長年にわたる競争により、開発者が以前は困難だったタスクを実行できるようにする多くのツールが作成されました。これで、ほんの少しのスクリプトを使用して、データをユーザー コントロールにバインドするアプリケーションを作成して、埋め込みプロキシ タイプ コントロールを介してサーバーと通信できるようになります。
Internet Explorer (IE) では、これらには XML データ アイランドと XMLHTTP オブジェクトが含まれます。XML データ アイランドは、他のページに移動せずに、現在のページ内でサーバーへの接続を作成するためにデータをバインドするために使用されます。そして非同期呼び出し。これら 2 つの使いやすい機能を使用して、シンプルなチャット アプリケーションを作成します。このアプリケーションは、UI として機能するいくつかの ASP ページ、クライアント機能を実装する JavaScript、および SQL Server 2000 のビジネス ロジックを完成させる T-SQL で構成されます。
クライアントとサーバーは XML を使用して通信します。 Web サーバーがメッセージ チャンクを受信すると、そのメッセージ チャンクは SQL Server のタイムスタンプ付き MESSAGES テーブルに追加されます。クライアントは、事前に定義された時間間隔に基づいて、最後にサーバーに情報を要求してからデータベースに追加されたメッセージのリストやオンライン ユーザーのリストなどの更新情報をサーバーに要求します。
クライアントは XMLHTTP オブジェクトをサーバーに送信します。アクションは、メッセージとユーザー リストを更新するか、新しいメッセージを送信するリクエストです。これらのアクションは、ACTIONS というテーブルに保存されます。サーバーは、対応するリクエストに応答するか、新しいメッセージを受け入れて、それを MESSAGES テーブルに追加します。
サーバーがメッセージ要求に応答すると、最後の要求以降のすべての新しいメッセージのリストが返されます。顧客アクティビティを追跡するために、顧客アクティビティの日時を含む ACTIVITY テーブルを使用します。顧客の ID は、わかりやすい名前のテーブル HANDLES に保存されます。
テーブルを作成するスクリプトは次のとおりです。
すべてのデータ操作はストアド プロシージャを通じて完了します。すべてのデータ インターフェイスは、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 もあります。