Пособие по написанию WAP-сайтов

       

Рассмотрение приложения Real Estate



Рассмотрение приложения Real Estate

При запуске приложения RealEstate WML-страница RealEstate.wml выводит на экран приглашение пользователю на ввод минимальной и максимальной цены надом. Затем, чтобы обработать введенные данные, приложение запускает Perl-сценарий. WML-страница RealEstate.wml реализуется с помощью следующего программного кода:

&lt?xml version="1.0"?&gt &lt!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"&gt

&ltwml&gt

&lthead&gt

&ltmeta http-equiv="Cache-Control" content="max-age=0" forua="true"/&gt

&lt/head&gt

&ltcard id="RealEstatePrice"&gt

&ltonevent type="onenterbackward"&gt

&ltgo method="post" href="../waplibcgi/RealEstateWML.pl"&gt &ltpostfield name="PriceLow" value="$(PriceLow)&"/&gt &ltpostfield name="PriceHigh" value="$(PriceHigh)&"/&gt &lt/go&gt

&lt/onevent&gt

&ltdo type="accept" label="Edit"&gt &ltnoop /&gt &lt/do&gt

&ltdo type="options" label="Find"&gt &ltgo href="#GetRealEstateResults" /&gt &lt/do&gt



&ltp align="center"&gt

Real Estate&ltbr/&gt Listings&ltbr/&gt

&lt/p&gt

&ltp align="left"&gt

Price Range:

&ltselect&gt

&ltoption onpick="#GetPriceLow"&gtLow $$$(PriceLow)&lt/option&gt &ltoption onpick="#GetPriceHigh"&gtHigh $$$(PriceHigh)&lt/option&gt

&lt/select&gt

&lt/p&gt

&lt/card&gt

&ltcard id="GetPriceLow"&gt

&ltdo type="accept"&gt &ltgo href="#RealEstatePrice" /&gt &lt/do&gt

&ltp align="left"&gt

Low: &ltinput name="PriceLow" maxlength="7" format="N6N" /&gt




&lt/p&gt

&lt/card&gt

&ltcard id="GetPriceHigh"&gt

&ltdo type="accept"&gt &ltgo href="#RealEstatePrice" /&gt &lt/do&gt

&ltp align="left"&gt

High: &ltinput name="PriceHigh" maxlength="7" format="N6N" /&gt

&lt/p&gt

&lt/card&gt

&ltcard id="GetRealEstateResults"&gt

&ltonevent type="onenterforward"&gt

&ltgo method="post" href="../waplibcgi/RealEstateWML.pl"&gt &ltpostfield name="PriceLow" value= "$(PriceLow)&"/&gt &ltpostfield name="PriceHigh" value= "$(PriceHigh)&"/&gt &lt/go&gt

&lt/onevent&gt

&ltonevent type="onenterbackward"&gt

&ltgo method="post" href="../waplibcgi/RealEstateWML.pl"&gt &ltpostfield name="PriceLow" value= "$(PriceLow)&"/&gt &ltpostfield name="PriceHigh" value= "$(PriceHigh)&"/&gt &lt/go&gt

&lt/onevent&gt

&lt/card&gt

&lt/wml&gt

Первые два элемента WML-страницы сообщают WAP-браузерам версию WAP-

спецификации, которую поддерживает приложение. В данном случае WML-

страница совместима с XML 1.0 и описанием типа документа (DTD) версии 1.1,

разработанным ассоциацией WAP Forum. Любая WML-страница, размещаемая

после информации о версии, начинается с тега <WML>. В конце каждой WML-

страницы должен находиться соответствующий тег </WML>, который завершает

элементы WML-страницы. Теги <HEAD> и </HEAD>, располагающиеся после тега

<WML>, позволяют указывать данные о WML-странице, включая метаданные и информацию, управляющую доступом.

Элемент <meta> позволяет определять для WML-страницы метаинформацию. Внашем случае параметр http-equiv=Cache-Control сообщает WAP-браузеру, чтоданная часть метаинформации относится к системе кэширования памяти.


Аналогично, параметр content=max-age= 0 сообщает браузеру, что максимальное время, в течение которого должно выполняться кэширование WML-страницы, равнонулю секунд; то есть, браузер должен не запоминать, а повторно загружать данные с сервера каждый раз, когда поступает запрос. Для данной книги нулевоезначение было выбрано, чтобы помочь читателю в разработке программы. Привыборе нулевого значения каждый раз, когда происходит изменение, оно передается на телефон. В реально эксплуатируемом приложении статическое меню,подобное рассматриваемому здесь, по-видимому, должно использовать интервалхранения, установленный по умолчанию, равным 30 дням. Наконец, параметрforua="true" определяет, что данное значение Cache-Control предназначенодля телефона и не должно удаляться каким-либо промежуточным агентом.

Приложение вначале использует элемент <select>, обеспечивающий возможность выбора для ввода минимальной или максимальной цены. На основе сделанного пользователем выбора выполняется ветвление программного кода и переход на определенную локальную карту, которая выдает приглашение пользователю на ввод соответствующих данных. Например, карта GetPriceHigh позволяет пользователю указывать верхнюю границу ценового диапазона. Элемент<input>, расположенный внутри карты GetPriceHigh, используется для выводаприглашения пользователю на форматированный ввод.

После того как пользователь введет необходимую информацию и выберет кнопкупоиска (Find), приложение запускает Peri-сценарий RealEstateWML.pl, который, всвою очередь, находит информацию о домах, чьи цены лежат в указанном пользователем ценовом диапазоне.


Содержание раздела