Применение элементов Семантического Веб в Интернет-магазине
Цель практического занятия: Целью данного семинара является применение технологии WebSlice в Интернет-магазине, как примера использования микроформатов, а также создание ускорителя для поиска товаров в Интернет-магазине.
Файлы к практическому занятию Вы можете скачать здесь.
22.1. Введение в ускорители
В приведенном в предыдущем практическом занятии шаблоне поискового расширения был один из опциональных тегов – ie:PreviewUrl. Он позволяет сделать предварительный просмотр результатов поиска в небольшом окне, которое отображает html-страницу с результатами поиска. Это возможно, так как на самом деле при загрузке в браузер поискового расширения оно превращается в акселератор.
Акселераторы (в дальнейшем – ускорители ) в Internet Explorer 8 – это команды контекстного меню, предоставляющие быстрый доступ к приложениям или веб-службам с какой-либо веб-страницы. Пользователи могут устанавливать ускорители из галереи дополнений Internet Explorer 8 или через любой веб-сайт, на котором они объявлены. Ускорители упрощают копирование информации с одной веб-страницы на другую.
Ускорители характеризуются следующими важными свойствами:
- Ускорители появляются в контекстном меню (отрывается при щелчке правой кнопкой) веб-страницы в Internet Explorer. Они группируются по функциям, поэтому пользователи могут быстро вызвать нужную задачу.
- Для ускорителей возможны два типа сценариев: пользователи могут предварительно просматривать информацию, не покидая веб-страницу, или выполнить отправку содержимого прямо в приложение или веб-службу.
- В XML- ускорителях используется XML-файл для описания формата HTTP-запросов к веб-серверу. Данные из целевого контекста (выбранный объект, ссылка или документ) передаются в виде переменных в параметрах URL-адреса и/или данных формы.
Ускорители позволяют осуществлять операции с данными на веб-странице. Можно выбрать несколько строк текста и, щелкнув кнопкой мыши, отправить их в блог или послать по электронной почте. С использованием ранее установленного ускорителя эта операция "выполняет" требуемое действие, переходя к нужному веб-сайту с выбранной частью статьи, уже доступной в поле редактирования. С использованием ускорителей типа "предварительный просмотр" можно выполнять операции с данными без перехода на другой веб-сайт; например, можно перевести слово или найти адрес на карте. Чтобы открыть окно предварительного просмотра, достаточно навести указатель мыши на ускоритель (рис. 22.1).
Ускорители являются декларативными. В них используется передача данных HTTP для обеспечения связи между браузером и веб-сайтом. XML- ускорители легко создавать, тестировать и развертывать для пользователей.
22.1.1. Категории
Ускорители группируются по функциям, поэтому пользователи могут быстро вызвать нужную задачу. В ходе установки ускорителя или в диалоговом окне "Надстройки" можно задать ускоритель по умолчанию для конкретной категории.
Существуют следующие категории ускорителей:
- Добавить ( Add );
- Опубликовать в блоге ( Blog );
- Найти определение ( Define );
- Найти на карте ( Map );
- Отправить ( Send );
- Перевести ( Translate );
- Искать ( Find, именно к этой категории относятся поисковые провайдеры).
Отдельно стоит выделить категорию Share, куда принято относятся все ускорители, не попавшие ни в одну из указанных категорий.
<activity category="Share">
В общем, можно использовать и собственные категории. При этом принято придерживаться правила, что категория должна выражаться глаголом, который будет понятен пользователю и не связан с определенной торговой маркой или приложениями, которые могут использоваться в этой категории другими ускорителями с аналогичными функциональными возможностями. Кроме того, поскольку значение атрибута category используется в диалоговом окне "Надстройки" для объединения ускорителей в группы, оно должно быть удобочитаемым и в нем должны правильно использоваться заглавные буквы.
22.1.2. Переменные
Свойства документа и содержимое передаются поставщику службы ускорителя через функции HTTP-передачи данных GET и/или POST. Эти свойства выражены заменяемыми переменными, которые можно передавать в виде полей формы или параметров URL-адреса. Переменные можно указать непосредственно в атрибуте action элементов execute и preview или в элементах parameters.
Доступны переменные, перечисленные в табл. 22.1.
Переменная | Контекст | Описание |
---|---|---|
{documentUrl} | Все | Свойство href документа. |
{documentTitle} | Все | Свойство title документа, если доступно. |
{documentDomain} | Все | Действующий домен второго уровня из свойства href документа. |
{documentHost} | Все | Полное имя домена из свойства href документа. |
{selection} | Выделение | Выбранный текст. |
{link} | Ссылка | Свойство href выбранной ссылки. |
{linkText} | Ссылка | Свойство innerText выбранной ссылки. |
{linkRel} | Ссылка | Свойство rel выбранной ссылки, если доступно. |
{linkType} | Ссылка | Свойство type выбранной ссылки, если доступно. |
{linkDomain} | Ссылка | Действующий домен второго уровня из свойства href ссылки. |
{linkHost} | Ссылка | Полное имя домена из свойства href ссылки. |
О переменных необходимо помнить следующее:
- Имена переменных всегда заключаются в фигурные скобки {} ; например {selection}. Чтобы указать в запросе сам символ фигурной скобки, используется обратная косая черта, например \{{selection}\}.
- Если после имени переменной указывается "?", это означает, что оно необязательное; например {documentTitle?}.
- Если какая-либо обязательная переменная в шаблоне URL-адреса недоступна (например, при попытке выполнения ускорителя, включающего {linkRel} в атрибуте action, в отношении ссылки без атрибута rel ), ускоритель выполнить нельзя и относящийся к нему пункт в контекстном меню затеняется.
- Если какой-либо элемент parameter имеет пустое значение по любой причине, он не появляется в запросе.
22.2. Описание структуры XML файла ускорителя
В общем, описание акселератора имеет следующий вид:
<?xml version="1.0" encoding="UTF-8"?> <openServiceDescription xmlns="http://www.microsoft.com/schemas/openservicedescription/1.0"> <homepageUrl>http://maps.example.com</homepageUrl> <display> <name> Карта MyMap</os:name> <icon> http://www.example.com/favicon.ico</ icon> <description>Адреса на карте – с помощью MyMap.</description> </ display> < activity category="Карта"> <activityAction context="selection"> <preview action="http://maps.example.com/preview.php?addr={selection}" /> <execute action="http://maps.example.com/" method="get"> <parameter name="addr" value="{selection}" type="text" /> </execute> </activityAction> </activity> </openServiceDescription>
Рассмотрим подробно все используемые теги.
22.2.1. openServiceDescription
<openServiceDescription xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
Корневой элемент файла ускорителя OpenService – элемент openServiceDescription. Атрибут xmlns является обязательным и должен иметь значение http://www.microsoft.com/schemas/openservicedescription/1.0.
22.2.2. homepageUrl
<homepageUrl>http://maps.example.com</homepageUrl>
Обязательный. Элемент homepageUrl определяет основной URL-адрес ускорителя, по которому пользователь может получить доступ к службе из веб-браузера. Во всех URL-адресах, указанных в файле ускорителя OpenService, домен должен совпадать с доменом, указанным в элементе homepageUrl.
22.2.3. display
<display>
Обязательный. Элемент display описывает способ отображения ускорителя для пользователя. Он содержит элементы name и icon.
22.2.4. name
<name>Карта MyMap</name>
Обязательный. Элемент name – это имя ускорителя, отображаемое в контекстном меню. Имя ускорителя должно начинаться с описательного слова, за которым должно следовать наименование поставщика услуг. Например, "Карты Windows Live" или "Найти в Encarta".
22.2.5. icon
<icon>http://www.example.com/favicon.ico</icon>
Необязательный. Элемент icon содержит URL-адрес для значка (размером 16 x 16 пикселей) данного ускорителя. Имя домена должно совпадать с доменом, указанным в элементе homepageUrl.
22.2.6. description
<description>Адреса на карте – с помощью MyMap.</description>
Необязательный. Элемент description содержит более длинное описание ускорителя, отображаемое в диалоговом окне Управление надстройками.
22.2.7. activity
<activity category="Карта">
Обязательный. Элемент activity содержит всю функциональность ускорителя.
Каждый элемент activity должен указывать атрибут категории для описания поддерживаемого типа функциональности. Ускорители упорядочиваются в контекстном меню браузеров по категориям, чтобы пользователи могли быстро выполнить нужную задачу. Пользователи могут выбрать ускоритель по умолчанию для каждой категории при установке ускорителя или в диалоговом окне Управление надстройками. Ускорители по умолчанию отображаются в контекстном меню браузера, а все прочие ускорители – во вложенном меню.
22.2.8. activityAction
<activityAction context="selection">
Обязательный. Каждый элемент activityAction указывает ход взаимодействия с поставщиком службы на основе целевого объекта ускорителя (табл. 22.2). Необязательный атрибут контекста указывает целевой объект. Значение по умолчанию – selection.
22.2.9. preview
<preview action="http://maps.example.com/preview.php?addr={selection}" />
Необязательный. Элемент preview определяет содержимое окна HTML, которое отображается при наведении пользователем указателя мыши на ускоритель. Этот элемент использует те же атрибуты и дочерние элементы, что и элемент execute.
URL-адрес атрибута действия может содержать переменные, заменяемые при выполнении команд.
22.2.10. execute
<execute action="http://maps.example.com/" method="get">
Обязательный. Элемент execute указывает основное действие, выполняемое при запуске ускорителя пользователем. Как и preview, этот элемент может содержать переменные замены в атрибуте действия или в виде отдельных элементов parameter.
Следующие атрибуты определены для execute и preview (табл. 22.3).
Атрибут | Обязательный | Описание |
---|---|---|
action | Да | Шаблон URL-адреса для использования при отправке HTTP. |
method | Нет | Тип используемого метода HTTP ( get, post ). По умолчанию – get. |
enctype | Нет | Тип содержимого, отправляемого на сервер. По умолчанию – application/x-www-form-urlencoded. |
accept-charset | Нет | По умолчанию – utf-8. |
22.2.11. parameter
<parameter name="addr" value="{selection}" type="text" />
Необязательный. Элемент parameter предоставляет дополнительный способ выражения значений. Обязательные атрибуты имени и значения определяют строчные выходные данные, относящиеся к службе, и обычно относятся к переменным ускорителя.
Необязательный атрибут типа используется для преобразования переменной {selection} в HTML или простой текст. Значение по умолчанию – text.