Одна из важнейших задач, которую приходится решать разработчикам приложений — идет
ли речь о веб-приложениях или приложениях для настольной системы, — это хранение
данных. Запись уникальных ключей, определяющих
способ отображения страниц, со-
хранение имен пользователей, индивидуальных настроек, — список можно продолжать
бесконечно.
Раньше, для того чтобы запомнить данные веб-приложения, разработчикам приходилось
либо дробить их, сохраняя часть на сервере и создавая некое связующее звено между кли-
ентом и сервером, либо использовать файлы cookie.
Файлы cookie — это кошмар и ужас. Нет, само слово переводится прекрасно, печенье любят
все. И все же, оно должно быть на столе, а не в браузере. С
файлами cookie связано множе-
ство проблем, превращающих работу с ними в сплошную головную боль. Приступая к но-
вому проекту, в котором будут использоваться файлы cookie, первым делом я отправляюсь
на поиски библиотеки JavaScript, предназначенной специально для таких приложений.
Если мне не удается найти ее, то я обращаюсь за помощью к Google и копирую нужные
фрагменты из кода, написанного Питером-Полом Кохом.
ПРИМЕЧАНИЕ
Код Питера-Пола Коха для приложений, использующих файлы cookie, можно загрузить с
сайта
http://www quirksmode org/js/cookies html
Программная реализация файлов cookie чрезмерно усложнена. Только взгляните: создание
файла cookie на JavaScript выглядит примерно так:
document.cookie =
"foo=bar; path=/";
Это сеансовый файл cookie. Если же вы не хотите, чтобы данные стерлись в момент окон-
чания сеанса, при создании файла нужно указать для него срок жизни (чтобы подарить
файлу cookie бессмертие, придется периодически прибавлять ему
n
дней жизни):
document.cookie =
"foo=bar; path=/; expires=Tues,
¬ 13 Sept 2010 12:00:00";
Формат времени исключительно важен — вы уже поняли, что это еще один источник го-
ловной боли? А теперь покроем наши черствые печенюшки прокисшей глазурью: удалить
файл cookie можно, только присвоив ему пустое значение:
document.cookie =
"foo=; path=/";
Но не все так просто: в
действительности, файл при этом
не удаляется. Меняется его
значение и срок жизни — до конца сеанса, то есть до закрытия браузера. Вы согласны, что
в реальном мире удаление должно означать удаление?
Файлы cookie не работают, потому что это не технология, а букет проблем. Новые специ-
фикации хранения позволяют полностью отказаться от устаревшего подхода к созданию,
извлечению и удалению данных. Теперь в распоряжении разработчиков есть новый по-
нятный интерфейс прикладного программирования.
Однако будучи британцем, я обязан в
некоторой мере опровергнуть свое предыдущее за-
явление о том, что «файлы cookies ужасны». Не бойтесь, я не собираюсь противоречить
себе во всем. Если перед вами стоит задача доставить данные с клиентской стороны на
190 • Глава 6
серверную, то файлы cookie — это самое подходщее решение, так как они автоматически
присоединяются к каждому запросу. Если же этого делать не требуется, вам понадобится
механизм хранения данных на серверной стороне. По моему мнению, технология веб-
хранилищ сумела достигнуть той степени развития, до которой не добрались файлы cookie,
и они намного функциональнее. Поэтому не обращайте на это
опровержение слишком
много внимания — давайте лучше посмотрим, что там спрятано в хранилищах современ-
ных браузеров!
Достарыңызбен бөлісу: