Утилиты для работы с броузером

В этом разделе представлен краткий обзор вспомогательных функций из инструментального набора, предназначенных для работы с cookies и с кнопкой «Назад» – двух возможностей, поддержка которых является обычной для любого современного вебприложения. Поскольку все необходимые функции находится в библиотеке Core, прежде чем воспользоваться ими, следует загрузить их с помощью dojo.require.

Cookies
Протокол HTTP является протоколом, не использующим информацию о состоянии, поэтому как только вебсервер закончит передачу страницы, он не будет иметь никакой информации о клиенте. Такой принцип действия Сети прекрасно зарекомендовал себя во многих от ношениях, но он не идеален в ситуациях, когда приложению необходимо отображать страницу с учетом личных предпочтений пользовтеля, выбранных им к этому моменту. Например, для сайта, предоставляющего прогноз погоды, было бы нелишним запоминать код вашего региона, чтобы вам не приходилось вводить его всякий раз при посещении страницы.

Концепция cookies впервые была разработана в компании Netscape с целью смягчить эту проблему и дать броузерам ограниченную форму краткосрочной памяти. Проще говоря, разработчики вебстраниц могут с помощью JavaScript или с помощью сценариев на стороне сервера создать cookie с информацией о посещении страницы в виде пар имя/значение.


При очередном посещении страницы сценарии могут извлечь информацию из cookie и динамически подстроить страницу под вас. Вообще cookies имеют конечный срок действия и всегда связаны с определенным доменом, откуда они были получены.

Одна из проблем, возникающих при работе с cookie из JavaScript, заключается в том, что вам приходится помнить некий строгий требуемый синтаксис и самостоятельно конструировать строки. Например, чтобы создать cookie для домена по умолчанию, содержащий пару имя/значение foo=bar, с определенным сроком действия, необходимо выполнить примерно следующее действие:
document.cookie ='foo=bar; expires=Sun, 15 Jun 2008 12:00:00 UTC; path=/'

Безусловно, в этом нет ничего сложного. Но когда потребуется прочитать значения из cookie, вам придется самостоятельно проанализировать строку, которая может содержать большое число пар имя/значение.

В наборе инструментальных средств Dojo имеются функции, выполняющие операции над cookie, пользоваться которыми гораздо легче.

Например, установить и прочитать значение cookie можно следующим образом:
dojo.cookie("foo","bar", {expires : 30});
//установит пару ключ/значение foo/bar,
//со сроком действия 30 дней от текущей даты
dojo.cookie("foo"); //вернет значение bar для имени foo
Работа с кнопкой «Назад»

В наши дни стало нормой, когда все приложение выполняется в пределах единственной страницы, которая никогда не перезагружается, но это влечет за собой проблему управления действием кнопки «Назад» так, чтобы приложение могло корректно переключать свое состояние при ее нажатии и даже обеспечивать возможность установки закладок.


В модуле back из библиотеки Core имеется простая вспомогательная функция, которая упрощает работу по отслеживанию состояний приложения, позволяя явно определять их и действовать соответствующим образом при нажатии кнопки «Назад» или «Вперед».

Пример 2.8, как хотелось бы надеяться, поясняет основную идею; в нем иллюстрируется тривиальное использование функции back для определения функции обратного вызова, которая должна обеспечить необходимое поведение. Обратите внимание: строки, выделенные в листинге, необходимы для обеспечения нормальной работы в IE.

Пример 2.8. Пример обработки нажатия кнопки «Назад»


Fun with Back!
href="http://o.aolcdn.com/dojo/1.1/dojo/resources/dojo.css" />
type="text/javascript"
src="http://o.aolcdn.com/dojo/1.1/dojo/dojo.xd.js"
djConfig="dojoIframeHistoryUrl:'iframe_history.html',isDebug:true"
>


(body)


Press the back button and have a look at the console.
(/body)
.



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
Аргументы «функции в виде строк»
Блочная модель
Грубое определение типа
Добавление узлов
Зачем управлять беспорядком

Вернуться в раздел: Dojo / Утилиты броузера