![]() |
||
|
aranea.ru || WML - Введение | 9. События и навигация
9. События и навигация9.1 Обработка навигации и событийWML имеет модели для обработки навигации и событий. Ассоциированные элементы позволяют автору определить обработку событий устройства вывода. События могут привязываться к задачам автора; когда происходит событие, выполняется связанная с ним задача. Разнообразие задач может определяться через навигацию на адрес URL, определенный автором. Связи событий декларируются несколькими элементами, включая do и onevent. 9.2 ИсторияЯзык WML имеет простую модель навигационной истории, которая позволяет автору управлять обратной навигацией удобным и эффективным способом. История устройства вывода смоделирована как стек адресов URL, который представляет навигационный путь, которым пользователь пришел к текущей карте. В стеке истории можно выполнять три операции:
Устройство вывода должно выполнять историю навигации. Так как каждая карта доступна через определенный явно адрес URL, (например, через атрибут href элемента go), то вход на карту добавляется в стек истории, даже если он идентичен самому последнему входу. Как минимум, каждый вход должен записывать абсолютный адрес URL карты, метод (get или post), используемый для доступа к карте, значение любого поля postfields и любой заголовок запроса. Содержание карты не записывается в историю. Ссылки на переменные никогда не сохраняются в истории. Любые ссылки на переменные в данных истории должны помещаться с текущим значением переменных перед тем, как вход добавляется к стеку. Устройство вывода должно возвращать пользователю предыдущую карту в истории, если выполняется задача prev (смотрите раздел 9.5.2). Выполнение prev выталкивает адрес URL текущей карты из стека истории. Если карта является частью деки, которая была первоначально выбрана с использованием метода HTTP, и устройство вывода должно повторно выбрать деку для вывода карты, то устройство вывода должно повторно записать данные post, связанные с выбором оригинальной деки. Значение данных post должны быть такими же значениями, как используемые при выборе оригинальной деки. Обратитесь к разделу 12.5.2 для получения подробной информации по семантике prev. Смотрите [CACHE] для получения подробной информации по семантике кэширования. 9.3 Элемент Postfield<!ELEMENT postfield EMPTY> <!ATTLIST postfield name %vdata; #REQUIRED value %vdata; #REQUIRED %coreattrs; > Элемент postfield определяет имя и значение поля для передачи на оригинальный сервер во время запроса URL. Фактическая кодировка имени и значения будет зависеть от метода, используемого для коммуникации с оригинальным сервером. Обратитесь к разделу 9.5.1 для получения подробной информации по использованию postfield в элементе go. Атрибутыname=vdata Атрибут name определяет имя поля. value=vdataАтрибут value определяет значение поля. Атрибуты, определенные в другом месте
9.4 Элемент Setvar<!ELEMENT setvar EMPTY> <!ATTLIST setvar name %vdata; #REQUIRED value %vdata; #REQUIRED %coreattrs; > Элемент setvar определяет переменную для установки в текущем контексте обозревателя, как побочный эффект выполнения задачи. Элемент должен игнорироваться, если атрибут name оценивает имя переменной во время исполнения как некорректную (смотрите раздел 7.5). Смотрите раздел 10.3.4 для получения подробной информации по установке переменных. Атрибутыname=vdata Атрибут name определяет имя переменной. value=vdataАтрибут value определяет значение, которое присваивается переменной. Атрибуты, определенные в другом месте
|