Годы конкуренции между различными браузерами привели к созданию множества инструментов, помогающих разработчикам выполнять задачи, которые раньше было сложно выполнить. Теперь с помощью всего лишь небольшого сценария вы можете создать приложение, которое привязывает данные к пользовательскому элементу управления, чтобы оно взаимодействовало с сервером через встроенный элемент управления типа прокси.
В Internet Explorer (IE) к ним относятся острова данных XML, а объекты XMLHTTP используются для привязки данных к элементам формы. Объекты XMLHTTP используются для создания подключений к серверу на текущей странице без перехода на другие страницы. и асинхронные вызовы. Я буду использовать эти две простые в использовании функции для создания простого приложения чата, состоящего из нескольких страниц ASP, которые действуют как пользовательский интерфейс, JavaScript для реализации клиентских функций и T-SQL для реализации бизнес-логики в SQL Server 2000.
Клиент и сервер взаимодействуют с помощью XML. После того как веб-сервер получает фрагмент сообщения, этот фрагмент сообщения добавляется в таблицу MESSAGES с отметкой времени в SQL Server. В зависимости от заранее определенного интервала времени клиент будет запрашивать обновленную информацию с сервера, включая список сообщений и список онлайн-пользователей, добавленных в базу данных с момента последнего запроса информации с сервера.
Клиент отправит объект XMLHTTP на сервер. Действием является либо запрос на обновление сообщения и списка пользователей, либо на отправку нового сообщения. Эти действия хранятся в таблице ACTIONS. Сервер ответит на соответствующий запрос или примет новое сообщение и добавит его в таблицу MESSAGES.
Когда сервер отвечает на запрос сообщения, он возвращает список всех новых сообщений с момента последнего запроса. Чтобы отслеживать активность клиентов, я использую таблицу ACTIVITY, которая содержит дату и время активности клиента. Личность клиента хранится в таблице HANDLES, которая имеет интуитивно понятное имя.
Ниже приведен скрипт для создания таблицы:
Все операции с данными будут выполняться посредством хранимых процедур. Весь обмен данными будет осуществляться через общий COM, который действует как связующее звено между веб-сервером и SQL Server 2000. Объект COM предоставляет метод RunSPReturnStream, который я хочу использовать. Первый параметр этого метода — это имя хранимой процедуры, а второй параметр — массив массивов параметров. Массив параметров представляет собой простой массив следующего формата: (paraName, paramType, paramLength, paramValue). paramType — это одно из перечислений типов параметров ADO. Страница ASP отвечает за принятие действий и создание ответов, я назову ее HandleAction.asp.
Страница чата будет содержать область для отображения сообщений чата; эта область представляет собой ТАБЛИЦУ, содержащуюся в DIV. Эта ТАБЛИЦА привязана к острову данных XML xmlMessages. Другая область отображает текущего пользователя; эта область также представляет собой TABLE, содержащуюся в DIV, который привязан к острову XML-данных xmlUsers. Существует также TEXTAREA, позволяющая пользователям вводить сообщения.