Можностей, предоставляемых веб-разработчикам



Pdf көрінісі
бет212/232
Дата06.01.2022
өлшемі5,47 Mb.
#12231
1   ...   208   209   210   211   212   213   214   215   ...   232
Байланысты:
[Bryus Louson, Remi SHarp] Izuchaem HTML5. Bibliot(z-lib.org)

Глава 6
Х
РАНЕНИЕ ДАННЫХ
Реми Шарп



Одна из важнейших задач, которую приходится решать разработчикам приложений — идет 
ли речь о веб-приложениях или приложениях для настольной системы, — это хранение 
данных. Запись уникальных ключей, определяющих способ отображения страниц, со-
хранение имен пользователей, индивидуальных настроек, — список можно продолжать 
бесконечно.
Раньше, для того чтобы запомнить данные веб-приложения, разработчикам приходилось 
либо дробить их, сохраняя часть на сервере и создавая некое связующее звено между кли-
ентом и сервером, либо использовать файлы 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, 
и они намного функциональнее. Поэтому не обращайте на это опровержение слишком 
много внимания — давайте лучше посмотрим, что там спрятано в хранилищах современ-
ных браузеров!


Достарыңызбен бөлісу:
1   ...   208   209   210   211   212   213   214   215   ...   232




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет