Класс AjaxMailbox
Основная работа на стороне сервера выполняется програм дом, содержащимся в файле с именем AjaxMail. inc. php. Этот держит описание класса AjaxMailbox, реализующего основной фейс, посредством которого организован доступ к электронно!
Таблицы базы данных
AjaxMail будет хранить почтовые сообщения в базе данных, поэтому нам потребуется создать несколько таблиц. Если у вас есть такая воз¬можность, создайте на сервере MySQL новую базу данных с именем AjaxMail. (Подойдет и любая другая уже созданная база данных) Вбазе данных создайте три таблицы: AjaxMailFolders, AjaxMailMessages нAjaxMailAttachments.
Архитектура
Для реализации серверной части AjaxMail будут привлечены и СУБД MySQL. В базе данных будет храниться информация о вых сообщениях, т. е. название папки, в которой хранится то сообщение, и сведения о том, было ли оно прочитано. В обоих подобная информация может храниться в базе данных в виде
Технические требования
Прежде чем приступать к созданиювеб-приложения, сначала, как всегда, определим технические требования к нему, а уж зат затем возь¬мемся за их реализацию. Может быть, раньше вам не приходилось ду¬мать о техничтехнических требованиях, предъявляемых к приложениям электронной почты.
Подведение итогов
В этой главе вы использовали приобретенные ранее знания для созда¬ния собственных веб-виджетов. Были продемонстрированы несколько виджетов, имеющих практическое значение и ставших возможными благодаря технологиям Ajax.
Реализация виджета поиска по сайту
Подобно виджету со сводкой погоды, у вас есть два способа его ] зации:
1. Можно добавить класс к уже существующему сайту, поддер щему ASP.NET. Для этого придется перекомпилировать код.1 вы решите пойти по этому пути, то прежде чем перекомп! программный код, измените файл sea rch. aspx так, чтобы он < ствовал вашему пространству имен.
Оформление внешнего вида виджета поиска по сайту
Виджет должен вписываться в общий дизайн сайта, поэтому разработке была предусмотрена возможность настройки его BI вида. Каждый элемент виджета имеет свой класс CSS, что суще но упрощает настройку.
Обработка информации
Метод handleResponse() принимает в качестве входного аргумента ответ сервера (строку в формате JSON), декодирует его и отображает резуль¬таты в виде гиперссылок внутри элемента . Этот метод принима¬ет единственный аргумент - строку в формате JSON:Этот фрагмент принимает аргумент sJson и передает его методу JSON.
Выполнение запроса XMLHttp
Как уже отмечалось, для выполнения операции поиска метод sea производит запрос к серверу:
AjaxSiteSearch.prototype.search = function () {
var oThis = this; • " '
var sUrl = encodeURI("search.aspx?search=" + this.textBox.value);
var oReq = zXmlHttp.createRequestO; oReq.onreadystatechange = function () {! if (oReq.readyState == 4) { if (oReq.status — 200) {
oThis.handleResponse(oReq.responseText);
oReq.open("GET" oReq.send();
sUrl, true);.
};
Очистка результатов
Метод clearResults() очень прост, он удаляет все дочерние узлы мента вывода результатов :
AjaxSiteSearch.prototype.clearResults = function () { .. while (this. resultPane.hasChildNodesO) {
this,resultPane.removeChild(this.resultPane.firstChild);