Структура возвращаемых данных

В качестве результата поставляются только идентификатор записи в блоге и ее заголовок; кроме того, результат поиска может содержать более одной записи.

База данных

Таблица базы данных для данного конкретного блога имеет очень про¬стую структуру. Она состоит из четырех полей: id (идентификатор),Этот запрос создаст пустую таблицу. Среди файлов к данному ру, выложенных на www.wrox.com, имеется файл SQL, который нит таблицу тестовыми данными.

Программная часть на стороне сервера

Для реализации серверной части виджета выбран язык С#. Поиск осу¬ществляется в базе данных MS SQL, а результаты возвращаются в фор¬мате JSON, для чего задействуется библиотека JSON для С#, упоми¬навшаяся в главе 7 (www.crockford.com/JSON/cs/). Поиск выполняет¬ся с помощью SQL-запросов к базе данных, содержащей записи в сете¬вом дневнике (web log - blog).

Создание виджета поиска по сайту

Функция поиска давно уже стала неотъемлемой частью любого сайта. Она дает возможность посетителям быстро отыскать необходимую ин¬формацию. Однако традиционные механизмы поиска страдают от того нее недостатка, что и Сеть в целом: они требуют полной перезагрузки страницы по окончании поиска с возможной потерей данных.

Реализация виджета поиска в Сети

Данный виджет очень прост в применении. Прежде всего необходимо загрузить на веб-сервер файл websearch. php (где, само собой разумеет¬ся, должен быть установлен РНР). Далее необходимо добавить в доку¬мент HTML ссылки на все компоненты виджета. Объект msnWebSearch использует в своей работе класс XParser, описанный в библиотеке zXml.

Оформление внешнего вида виджета поиска в Сети

Благодаря каскадным таблицам стилей внешний вид виджета можно легко привести в соответствие с оформлением существующего сайта.
Первый класс CSS, ajaxWebSearchBox, предназначен для оформления внешнего вида окна поиска. Окно должно позиционироваться на стра¬нице, поэтому в свойстве position класса должно быть значение absolute:
.ajaxWebSearchBox

Интерфейс к функции поиска

Последний метод объекта msnWebSearch - search(). Он реализует! фейс к функции поиска. Метод search() может быть вызван тию onclick элемента. Он принимает два аргумента - объект ev комую фразу:
msnWebSearch.search = function (е, sSearchTerm) {. var divSearchBox = this.drawResultBox(e); var url = encodeURI("websearch.php?search=" + sSearchTerm);
var oParser = new XParser(url); -oParser.onload = function () {
msnWebSea rch.populateResults(divSearchBox.childNodes[1],oPar

Закрытие окна с результатами поиска

Объект msnWebSearch предоставляет метод close(), который окно с результатами поиска. Метод close(), знакомый нам по i му тексту метода drawResultsBox(), вызывается по событию oncl пересылки, отвечающей за закрытие окна:
msnWebSearch.close = function () {
. var divSearchBox = this.parentNode.parentNode; document.body.removeChild(divSearchBox);
return false;
};

Отображение результатов

Панель результатов заполняется с помощью метода populateResults(). Он принимает два аргумента: элемент с результатами и объект XParser:
л msnWebSearch.populateResults = function (divResultsPane,oParser) { var oFragment = document.createDocumentFragment();
divResultsPane.removeChild(divResultsPane.firstChild);

Отрисовка окна с результатами

Программный код, генерирующий этот текст в формате HTML,; но громоздок, т. к. все элементы HTML создаются посредством i DOM. Метод drawResultBox() принимает один аргумент - объект f
snWebSearch.drawResultBox = function (е) { % var divSearchBox=- document.createElementC'div"); var divHeading = document.createElementC'div"); var divResultsPane = document.createElementC'div"); var aCloseLink = document.createElementC'a");

3 4 5
<<Page 2>>