WML - Задачи
Задача WML - это элемент, который указывает действие, которое должно выполняться браузером, а не то, что должно отображаться. Например, действие перехода к новой карточке представлено элементом задачи <go>, а действие возврата к предыдущей посещенной карточке представлено элементом задачи <prev>. Элементы задачи содержат всю информацию, необходимую для выполнения действия.
WML предоставляет следующие четыре элемента для обработки четырех задач WML, которые называются go task, pre task, refresh task и noop taks.
Задача <go>:
Как следует из названия, задача <go> представляет собой действие перехода к новой карточке.
Элемент <go> поддерживает следующие атрибуты:
Атрибут | Значение | Описание |
---|---|---|
href | URL | Предоставляет URL-адрес новой карты. Относительные URL-адреса разрешаются относительно текущей карты |
метод |
|
Задает метод, который следует использовать для извлечения колоды. Это должно быть одно из значений get или post, соответствующее методам GET и POST HTTP. Когда используешь method="get", данные отправляются в виде запроса с? данные, добавленные к URL-адресу. Недостатком этого метода является то, что его можно использовать только для ограниченного объема данных, и если вы отправите конфиденциальную информацию, она будет отображаться на экране и сохраняться в журналах веб-сервера. Поэтому не используйте этот метод, если вы отправляете пароль и т. Д. С участием method="post", данные отправляются в виде запроса с данными, отправленными в теле запроса. Этот метод не имеет ограничений, и конфиденциальная информация не отображается в URL-адресе. |
sendreferer |
|
Если установлено значение true, браузер отправляет URL-адрес текущей колоды вместе с запросом. Если возможно, этот URL-адрес отправляется как относительный. Это делается для того, чтобы серверы могли выполнять простой контроль доступа к декам, в зависимости от того, какие колоды связаны с ними. Например, при использовании HTTP этот атрибут отправляется в заголовке HTTP Referer. |
accept-charset | charset_list | Задает список наборов символов, разделенных запятыми или пробелами, которые могут кодировать данные, отправленные на сервер в запросе POST. Значение по умолчанию - «неизвестно». |
класс | данные класса | Устанавливает имя класса для элемента. |
Я бы | ID элемента | Уникальный идентификатор элемента. |
Ниже приведен пример использования элемента <go>.
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="GO Element">
<p>
<anchor>
Chapter 2 : <go href="chapter2.wml"/>
</anchor>
</p>
</card>
</wml>
Другой пример, показывающий, как загружать данные с помощью метода Get
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="GO Element">
<p>
<anchor>
Using Get Method
<go href="chapter2.wml?x=17&y=42" method="get"/>
</anchor>
</p>
</card>
</wml>
Еще один пример, показывающий, как загружать данные с помощью элемента <setvar>.
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="GO Element">
<p>
<anchor>
Using setvar:
<go href="chapter2.wml">
<setvar name="x" value="17"/>
<setvar name="y" value="42"/>
</go>
</anchor>
</p>
</card>
</wml>
Еще один пример, показывающий, как загрузить данные с помощью элемента <postfiled>
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="GO Element">
<p>
<anchor>
Using setvar:
<go href="chapter2.wml" method="get">
<postfield name="x" value="17"/>
<postfield name="y" value="42"/>
</go>
</anchor>
</p>
</card>
</wml>
Задача <prev>:
Задача <prev> представляет собой действие по возврату к ранее посещенной карточке в стеке истории. Когда это действие выполняется, верхняя запись удаляется из стека истории, и эта карточка отображается снова после того, как любые назначения переменных <setvar> в задаче <prev> вступят в силу.
Если предыдущего URL-адреса не существует, указание <prev> не действует.
Элемент <prev> поддерживает следующие атрибуты:
Атрибут | Значение | Описание |
---|---|---|
класс | данные класса | Устанавливает имя класса для элемента. |
Я бы | ID элемента | Уникальный идентификатор элемента. |
Ниже приведен пример использования элемента <prev>.
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="Prev Element">
<p>
<anchor>
Previous Page :<prev/>
</anchor>
</p>
</card>
</wml>
Одна из ситуаций, когда может быть полезно включить переменные в задачу <prev>, - это страница входа в систему, которая запрашивает имя пользователя и пароль. В некоторых ситуациях может потребоваться очистить поле пароля при возврате к карте входа в систему, что заставит пользователя ввести ее повторно. Это можно сделать с помощью такой конструкции, как:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="Prev Element">
<p>
<anchor>
<prev>
<setvar name="password" value=""/>
</prev>
</anchor>
</p>
</card>
</wml>
Задача <refresh>:
Задача <refresh> - это простейшая задача, которая действительно что-то делает. Его эффект заключается в простом выполнении назначений переменных, указанных в его элементах <setvar>, а затем повторном отображении текущей карты с новыми значениями. Задачи <go> и <prev> выполняют одно и то же действие непосредственно перед отображением новой карточки.
Задача <refresh> чаще всего используется для выполнения некоторого действия по «сбросу» карты.
Элемент <refresh> поддерживает следующие атрибуты:
Атрибут | Значение | Описание |
---|---|---|
класс | данные класса | Устанавливает имя класса для элемента. |
Я бы | ID элемента | Уникальный идентификатор элемента. |
Ниже приведен пример использования элемента <refresh>.
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="Referesh Element">
<p>
<anchor>
Refresh this page:
<go href="test.wml"/>
<refresh>
<setvar name="x" value="100"/>
</refresh>
</anchor>
</p>
</card>
</wml>
Задача <noop>:
Задача <noop> - ничего не делать (не выполнять никаких действий).
Единственное реальное использование этой задачи связано с шаблонами.
Элемент <noop> поддерживает следующие атрибуты:
Атрибут | Значение | Описание |
---|---|---|
класс | данные класса | Устанавливает имя класса для элемента. |
Я бы | ID элемента | Уникальный идентификатор элемента. |
Ниже приведен пример использования элемента <noop>.
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<card title="Noop Element">
<p>
<do type="prev" label="Back">
<noop/>
</do>
</p>
</card>
</wml>