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

       

Рассмотрение приложения CurrencyScript.wml



Рассмотрение приложения CurrencyScript.wml

При запуске приложения Currency Script браузер загружает WML-страницу, содержащуюся в файле CurrencyScript.wml, которая вначале инициализирует курсы пересчета валют. Если вы просмотрите WML-страницу, то обнаружите, что в нейимеется много ссылок, подобных приводимой ниже. Эта ссылка активизируетфункцию, находящуюся в отдельном WMLScript-файле:

<go href=" CurrencyScriptI.wmls#Initialize()" />

В данном случае элемент отдает браузеру команду выполнить ветвление и перейти к функции Initialize (Инициализация), находящейся в файлеCurrencyScriptI .wmls. После того как функция выполнит обработку, для которойона предназначена, управление возвращается в текущее место программного кода. Как вы увидите, функция Initialize присваивает значения курсов пересчетафунтов, йен и евро в доллары.

По мере знакомства с WML-страницей вы также встретите ряд элементов, примеркоторых приводится ниже. Здесь элемент ссылается на значение хранимое в переменной:

<td<a href="CurrencyScriptl.wmls#GetUSDollar()" title="Edit">US

Dollars :</aX/td>

<td>$USDollar<td>

В данном случае программный код ссылается на переменную USDollar, котораясодержит результат последнего преобразования в доллары США. ПриложениеCurrencyScript.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="CurrencyScript"&gt

&ltonevent type="onenterforward"&gt

&ltgo href="CurrencyScript1.wmls#Initialize()" /&gt

&lt/onevent&gt

&ltp align="center"&gt

Currency Converter

&lt/p&gt




&ltp align="left" mode="nowrap"&gt

&lttable align="left" columns="2"&gt

&lttr&gt &lttd&gt&lta href="CurrencyScript1.wmls #GetUSDollar()" title="Edit"&gtUS Dollars:&lt/a&gt&lt/td&gt &lttd&gt$USDollar&lt/td&gt &lt/tr&gt

&lttr&gt &lttd&gt&lta href="CurrencyScript1.wmls #GetEuro()" title="Edit"&gtEuro:&lt/a&gt&lt/td&gt &lttd&gt$Euro&lt/td&gt &lt/tr&gt

&lttr&gt &lttd&gt&lta href="CurrencyScript2.wmls #GetUKPound()" title="Edit"&gtUK Pounds:&lt/a&gt&lt/td&gt &lttd&gt$UKPound&lt/td&gt &lt/tr&gt

&lttr&gt &lttd&gt&lta href="CurrencyScript2.wmls #GetJapanYen()" title="Edit"&gtJapan Yen:&lt/a&gt&lt/td&gt &lttd&gt$JapanYen&lt/td&gt &lt/tr&gt

&lt/table&gt

&lt/p&gt

&lt/card&gt

&lt/wml&gt

Как и во всех WML-страницах, первые два элемента рассматриваемой 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предназначено для телефона и не должно удаляться каким-либо промежуточнымагентом.

Затем приложение создает таблицу, элементы которой указывают на функции вWMLScript-файлах. Так как многие WML-браузеры накладывают ограничение намаксимальный размер WML-страницы, приложение размещает функции в двухотдельных файлах. В частности, функции выводят приглашение на ввод суммыденег в долларах, фунтах, йенах или евро. Затем, основываясь на введенныхпользователем данных, WMLScript преобразует указанную сумму денег в другиевалюты и присваивает полученные результаты переменным $USDollar, $Euro,$UKPound и $ JapanYen, которые потом приложение отображает в таблице.


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