Задача WML — это элемент, который задает действие, которое должен выполнять браузер, а не что-либо, что должно отображаться. Например, действие перехода на новую карту представлено элементом задачи <go>, а действие возврата к предыдущей посещенной карте представлено элементом задачи <prev>. Элементы задачи инкапсулируют всю информацию, необходимую для выполнения действия.
WML предоставляет следующие четыре элемента для обработки четырех задач WML, называемых задачами go, pre task, refresh task и noop taks.
Задача <go>:
Как следует из названия, задача <go> представляет действие перехода на новую карту.
Элемент <go> поддерживает следующие атрибуты:
атрибут | Значение | Описание |
---|---|---|
HREF | URL | Дает URL новой карты. Относительные URL разрешены относительно текущей карты |
метод |
|
Определяет метод, который должен использоваться для извлечения колоды. Это должно быть одно из значений get или post, соответствующее методам GET и POST HTTP.
При использовании method = «get» данные отправляются как запрос с? данные добавлены к URL. Недостаток метода заключается в том, что его можно использовать только для ограниченного объема данных, и если вы отправите конфиденциальную информацию, она будет отображаться на экране и сохраняться в журналах веб-сервера. Поэтому не используйте этот метод, если вы отправляете пароль и т. Д. При методе = «post» данные отправляются как запрос, а данные отправляются в теле запроса. Этот метод не имеет ограничений, и конфиденциальная информация не видна в URL |
sendreferer |
|
Если установлено значение true, браузер отправляет URL-адрес текущей колоды вместе с запросом. Этот URL отправляется как относительный URL, если это возможно. Цель этого состоит в том, чтобы позволить серверам выполнять простое управление доступом на палубах, основываясь на том, какие колоды связываются с ними. Например, при использовании HTTP этот атрибут отправляется в заголовке HTTP Referer. |
Accept-кодировок | charset_list | Задает разделенный запятыми или пробелами список наборов символов, которые могут кодировать данные, отправляемые на сервер в запросе POST. Значением по умолчанию является «неизвестно». |
учебный класс | данные класса | Устанавливает имя класса для элемента. |
Я бы | идентификатор элемента | Уникальный идентификатор элемента. |
При использовании method = «get» данные отправляются как запрос с? данные добавлены к URL. Недостаток метода заключается в том, что его можно использовать только для ограниченного объема данных, и если вы отправите конфиденциальную информацию, она будет отображаться на экране и сохраняться в журналах веб-сервера. Поэтому не используйте этот метод, если вы отправляете пароль и т. Д.
При методе = «post» данные отправляются как запрос, а данные отправляются в теле запроса. Этот метод не имеет ограничений, и конфиденциальная информация не видна в URL
Ниже приведен пример, демонстрирующий использование элемента <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> поддерживает следующие атрибуты:
атрибут | Значение | Описание |
---|---|---|
учебный класс | данные класса | Устанавливает имя класса для элемента. |
Я бы | идентификатор элемента | Уникальный идентификатор элемента. |
Ниже приведен пример, демонстрирующий использование элемента <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> поддерживает следующие атрибуты:
атрибут | Значение | Описание |
---|---|---|
учебный класс | данные класса | Устанавливает имя класса для элемента. |
Я бы | идентификатор элемента | Уникальный идентификатор элемента. |
Ниже приведен пример, демонстрирующий использование элемента <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> поддерживает следующие атрибуты:
атрибут | Значение | Описание |
---|---|---|
учебный класс | данные класса | Устанавливает имя класса для элемента. |
Я бы | идентификатор элемента | Уникальный идентификатор элемента. |
Ниже приведен пример, демонстрирующий использование элемента <noop>.