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, соответствующее методам GET и POST HTTP.

Когда используешь method="get", данные отправляются в виде запроса с? данные, добавленные к URL-адресу. Недостатком этого метода является то, что его можно использовать только для ограниченного объема данных, и если вы отправите конфиденциальную информацию, она будет отображаться на экране и сохраняться в журналах веб-сервера. Поэтому не используйте этот метод, если вы отправляете пароль и т. Д.

С участием method="post", данные отправляются в виде запроса с данными, отправленными в теле запроса. Этот метод не имеет ограничений, и конфиденциальная информация не отображается в URL-адресе.

sendreferer
  • true
  • false
Если установлено значение 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>