不同浏覽器之間多年的競爭導致產生了很多工具幫助開發人員完成以前很難做到的任務
現在
只要一小段腳本
你就可以創建一個應用程序將數據綁定到用戶控件
這樣就可以通過一個內嵌的代理類型的控件與服務器通信
在 Internet Explorer(IE)中
這些東西包括 XML 數據島和 XMLHTTP 對象
XML 數據島用於將數據綁定到表單元素
XMLHTTP 對象用於在當前頁面內不導航到其它頁面的情況下創建對服務器的同步和異步調用
我將使用這兩個易用的特性創建一個簡單的聊天應用程序
該應用程序由一些充當 UI 的 ASP 頁面
實現客戶端功能的 JavaScript
和 SQL Server
中完成商業邏輯的 T
SQL 所組成
客戶和服務器使用 XML 通信
在 Web 服務器接收到一個消息塊之後
消息塊會追加到 SQL Server 中的一個帶有時間戳的 MESSAGES 表中
基於預先定義好的時間間隔
客戶會從服務器請求更新信息
包括自上一次從服務器請求信息到現在為止追加到數據庫中的消息列表和聯機用戶列表
客戶將通過 XMLHTTP 對象發送一個 到服務器
動作(action)要麼是請求刷新消息和用戶列表
要麼是發送一個新消息
這些動作保存在一個叫做 ACTIONS 的表中
服務器將響應相應的請求或者接受一個新消息然後追加到 MESSAGES 表中
當服務器響應一個消息的請求的時候
會返回上次請求之後的所有新消息的一個列表
為了跟蹤客戶的活動
我使用一個 ACTIVITY 表包含客戶活動的日期時間(datetime)
客戶的標識保存在表 HANDLES 中
該表的名字很直觀
下面是建表的腳本
所有的數據操作將通過存儲過程完成
所有的數據接口將通過一個充當 Web 服務器和 SQL Server
的聯絡員的泛型 COM 完成
COM 對象暴露一個我要使用的方法RunSPReturnStream
該方法的第一個參數為存儲過程的名字
第二個參數是參數數組的數組
參數數組是一個如下格式的簡單數組
(paraName
paramType
paramLength
paramValue)
paramType是 ADO Parameter Type 枚舉之一
一個 ASP 頁面負責接受動作和創建響應
我把它叫做HandleAction
asp
聊天頁面將包含一個區域顯示聊天消息
這個區域是一個包含在 DIV 的 TABLE
這個 TABLE 被綁定到一個xmlMessages XML 數據島上
另外一個區域顯示當前的用戶
這個區域也是一個包含在 DIV 中的TABLE
它被綁定到一個xmlUsers XML數據島上
另外還有一個 TEXTAREA 供用戶輸入消息
From:http://tw.wingwit.com/Article/program/SQLServer/201311/21999.html