В предыдущей главе мы познакомились с Web-формами и элементами управления,
HTML-тегами для их создания и средствами объектов Web-обозревателя и библио-теки Ext Core для работы с ними. На основе этих элементов управления и базы дан-ных мы создали систему поиска для своего Web-сайта. Наш небольшой Web-сайтик
теперь выглядит просто шикарно!
Только вот поиск у нас вышел какой-то корявый, больше похожий не на готовое
решение, а на экспериментальный "прибамбас", который со временем переделают
во что-либо более приемлемое (или уберут совсем). Давайте сами посмотрим на
него критическим взглядом.
Контейнер с полосой навигации — не лучшее место для Web-формы поиска. То,
что она нарушает дизайн Web-страницы, не страшно — задать для нее подходя-щее представление не составит для нас труда. Хуже другое — полоса навигации
в какой-то момент станет слишком большой, не поместится в контейнер, Web-форма "уедет" вниз, и посетителю, чтобы до нее добраться, придется пользо-ваться полосами прокрутки. А ведь он должен догадаться, что Web-форма поис-ка еще присутствует на Web-странице, а не пропала бесследно и невесть куда!
|
|
Низ контейнера с основным содержимым тоже плохо подходит для размещения
результатов поиска: основное содержимое может оказаться слишком большим,
чтобы поместиться в контейнер полностью, и посетителю придется пользоваться
полосами прокрутки, чтобы добраться до результатов поиска.
Теперь предположим, что посетитель выполнил поиск, который оказался удач-ным, и в низу контейнера с основным содержимым появится список с результа-тами. После этого посетитель снова выполнил успешный поиск, и в низу кон-тейнера с основным содержимым появится еще один список — с результатами
нового поиска. Если повторять поиск снова и снова, будут появляться все новые
списки с результатами, и так без конца.
В принципе, некоторые из перечисленных проблем можно решить известными нам
средствами. Как уже говорилось, для Web-формы мы можем создать представле-ние, "облагораживающее" ее. Мы способны выявлять, присутствует ли уже в ос-новном содержимом список с результатами поиска, и удалять его; для этого мы
можем привязать к списку стилевой класс или дать ему имя, по которому сможем
его найти.
Но куда выводить результаты поиска, чтобы посетитель сразу их увидел?
Напрашивается вывод: создать на Web-странице еще один блочный контейнер, по-местить в него Web-форму и туда же выводить результаты поиска. Но дополни-тельный контейнер займет определенное место на Web-странице, может быть,
слишком много места. А значит, останется меньше пространства для остальных
контейнеров.
Мы можем сделать этот контейнер изначально небольшим, ровно таким, чтобы
вместить только Web-форму. Если же поиск увенчается успехом, мы увеличим
размер контейнера, чтобы он вместил список с результатами. Но тогда остальные
контейнеры будут "ездить" по Web-странице туда-сюда, чем немало развеселят по-сетителей. Хорошее настроение — оно, конечно, замечательно, но все равно это не
выход.