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

       

Подробнее о приложении PackageTracker



Подробнее о приложении PackageTracker

Когда пользователь запускает приложение PackageTracker, дека Ptracker.wml предлагает пользователю ввести номер, присвоенный посылке авиакомпанией. Послеего ввода и подтверждения правильности, дека загружает сценарий языка Perl(файл PackageWML.pl). Дека Ptracker.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="Tracker" title="Package Tracker"&gt

&ltonevent type="onenterforward"&gt

&ltrefresh&gt &ltsetvar name="ABNum" value="" /&gt &lt/refresh&gt

&lt/onevent&gt

&ltonevent type="onenterbackward"&gt

&ltrefresh&gt &ltsetvar name="ABNum" value="" /&gt &lt/refresh&gt



&lt/onevent&gt

&ltp align="center"&gt

Package&ltbr/&gt Tracker&ltbr/&gt

&lt/p&gt

&ltp align="left"&gt

AirBill Number: &ltinput name="ABNum" maxlength="7" title="Air Bill Number" type="text" format="AANNNNN" /&gt

&lt/p&gt

&ltp align="left"&gt

Package ID#:&ltbr/&gt $(ABNum)&ltbr/&gt

&ltselect&gt &ltoption onpick="../waplibcgi/PackageWML.pl? $(ABNum)"&gtTrack&lt/option&gt &ltoption onpick="#Tracker"&gtClear&lt/option&gt &lt/select&gt

&lt/p&gt

&lt/card&gt

&lt/wml&gt

Так же как и во всех деках формата WML, первые два ее элемента сообщают браузеру, какую из версий спецификации WAP поддерживает данное приложение.


Внашем случае WML-страница поддерживает версию 1.0 языка XML и версию 1.1описания типа документа (DTD), разработанного ассоциацией WAP Forum.

&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

Далее, за информацией о версиях, каждый WML-файл начинается с тега <wml>. Вконце каждого файла вводят </wml>, что означает окончание исходного кодаприложения. За <wml> следуют теги <head> и </head>, внутри которых находитсяинформация о самом исходном коде, включая метаданные и информацию обуправлении доступом. Многие программисты называют метаданные «данными оданных». Другими словами, в этом случае метаданные, которые считывает и обрабатывает браузер, сообщают, ему, как трактовать данные.

&lthead&gt

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

&lt/head&gt

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

Далее за элементами заголовка в деке определяется единственная карта, котораяв нашем случае называется Tracker.Основной задачей этой карты является предоставление пользователю возможности ввода номера посылки. Внутри картыиспользуются два элемента <onevent>, которые обрабатывают нажатие пользователем кнопок <до> и <prev>. Исходный код обработки события каждый разпросто переинициализирует переменную ABNum (номер посылки), присваивая ейзначение ноль. Далее в карте используется элемент <input> для ввода номерапосылки. Заметьте, что в <input> определяется формат AANNNNN, который позволяет пользователю ввести перед пятью цифрами два алфавитно-цифровых символа.

После ввода номера посылки приложение вызывает сценарий языка PerlPackageWML.pl.


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