Рассмотрение приложения 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 реализуется с помощью следующего программного кода:
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head>
<meta http-equiv="Cache-Control" content="max-age=0" forua="true"/>
</head>
<card id="CurrencyScript">
<onevent type="onenterforward">
<go href="CurrencyScript1.wmls#Initialize()" />
</onevent>
<p align="center">
Currency Converter
</p>
<p align="left" mode="nowrap">
<table align="left" columns="2">
<tr> <td><a href="CurrencyScript1.wmls #GetUSDollar()" title="Edit">US Dollars:</a></td> <td>$USDollar</td> </tr>
<tr> <td><a href="CurrencyScript1.wmls #GetEuro()" title="Edit">Euro:</a></td> <td>$Euro</td> </tr>
<tr> <td><a href="CurrencyScript2.wmls #GetUKPound()" title="Edit">UK Pounds:</a></td> <td>$UKPound</td> </tr>
<tr> <td><a href="CurrencyScript2.wmls #GetJapanYen()" title="Edit">Japan Yen:</a></td> <td>$JapanYen</td> </tr>
</table>
</p>
</card>
</wml>
Как и во всех 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, которые потом приложение отображает в таблице.