여러 브라우저 간의 수년간의 경쟁으로 인해 개발자가 이전에는 수행하기 어려웠던 작업을 수행하는 데 도움이 되는 많은 도구가 만들어졌습니다. 이제 약간의 스크립트만으로 데이터를 사용자 컨트롤에 바인딩하여 내장된 프록시 유형 컨트롤을 통해 서버와 통신하는 애플리케이션을 만들 수 있습니다.
Internet Explorer(IE)에는 데이터를 양식 요소에 바인딩하는 데 사용되는 XML 데이터 아일랜드와 다른 페이지로 이동하지 않고 현재 페이지 내에서 서버에 대한 연결을 만드는 데 사용되는 XMLHTTP 개체가 포함됩니다. . 이 두 가지 사용하기 쉬운 기능을 사용하여 UI 역할을 하는 일부 ASP 페이지, 클라이언트 기능을 구현하는 JavaScript, SQL Server 2000의 비즈니스 논리를 완성하는 T-SQL로 구성된 간단한 채팅 응용 프로그램을 만들 것입니다.
클라이언트와 서버는 XML을 사용하여 통신합니다. 웹 서버가 메시지 청크를 받은 후 메시지 청크는 SQL Server의 타임스탬프가 있는 MESSAGES 테이블에 추가됩니다. 미리 정의된 시간 간격에 따라 클라이언트는 서버에 마지막으로 정보를 요청한 이후 데이터베이스에 추가된 메시지 목록과 온라인 사용자 목록을 포함하여 서버에 업데이트된 정보를 요청합니다.
클라이언트는 XMLHTTP 개체를 통해 서버에 <action/>을 보냅니다. 작업은 메시지 및 사용자 목록을 새로 고치거나 새 메시지를 보내라는 요청입니다. 이러한 작업은 ACTIONS라는 테이블에 저장됩니다. 서버는 해당 요청에 응답하거나 새 메시지를 수락하고 이를 MESSAGES 테이블에 추가합니다.
서버가 메시지 요청에 응답하면 마지막 요청 이후의 모든 새 메시지 목록을 반환합니다. 고객 활동을 추적하기 위해 고객 활동 날짜/시간이 포함된 ACTIVITY 테이블을 사용합니다. 고객의 신원은 직관적인 이름을 가진 HANDLES 테이블에 저장됩니다.
다음은 테이블을 생성하는 스크립트입니다:
CREATE TABLE [dbo].[ACTIONS] (
[action_id] [int] IDENTITY (1, 1) NOT NULL,
[action_name] [varchar] (50) NULL ,
[action_descr] [varchar] (255) NULL
) [기본] 사용
GO
CREATE TABLE [dbo].[ACTIVITY] (
[handle_id] [int] NULL ,
[작업_시간] [날짜시간] NULL
) [기본] 사용
GO
CREATE TABLE [dbo].[핸들] (
[handle_id] [int] IDENTITY (1, 1) NOT NULL,
[핸들] [nvarchar] (63) NULL
) [기본] 사용
GO
CREATE TABLE [dbo].[메시지] (
[msg_id] [int] IDENTITY (1, 1) NOT NULL,
[메시지] [nvarchar] (255) NULL ,
[action_id] [int] NULL ,
[action_time] [datetime] NOT NULL
) ON [PRIMARY]
모든 데이터 작업은 저장 프로시저를 통해 완료됩니다. 모든 데이터 인터페이스는 웹 서버와 SQL Server 2000 간의 연락 역할을 하는 일반 COM을 통해 수행됩니다. COM 개체는 내가 사용하려는 RunSPReturnStream 메서드를 노출합니다. 이 메서드의 첫 번째 매개 변수는 저장 프로시저의 이름이고 두 번째 매개 변수는 매개 변수 배열의 배열입니다. 매개변수 배열은 (paraName, paramType, paramLength, paramValue) 형식의 단순 배열입니다. paramType은 ADO 매개변수 유형 열거형 중 하나입니다. ASP 페이지는 작업을 수락하고 응답을 생성하는 역할을 담당하며 이를 HandleAction.asp라고 하겠습니다.
채팅 페이지에는 채팅 메시지를 표시하는 영역이 포함됩니다. 이 영역은 DIV에 포함된 테이블입니다. 이 TABLE은 xmlMessages XML 데이터 아일랜드에 바인딩됩니다. 또 다른 영역에는 현재 사용자가 표시됩니다. 이 영역은 xmlUsers XML 데이터 아일랜드에 바인딩된 DIV에 포함된 테이블이기도 합니다. 사용자가 메시지를 입력할 수 있는 TEXTAREA도 있습니다.
------------------------------------- ----------------------------------
이 기사의 저자: Phillip Perkins는 Ajilon Consulting의 계약자입니다. 그의 경험은 기계 제어, 클라이언트/서버부터 인트라넷 애플리케이션까지 다양합니다.