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



Pdf көрінісі
бет213/232
Дата06.01.2022
өлшемі5,47 Mb.
#12231
1   ...   209   210   211   212   213   214   215   216   ...   232
В
АРИАНТЫ ХРАНЕНИЯ
Что касается хранения данных на клиентской стороне, существует три варианта:
„
„
веб-хранилище (Web Storage), которое поддерживается во всех современных браузерах 
(
http://www w3 org/TR/webstorage/
);
„
„
базы данных SQL для веб (Web SQL Database), которые поддерживаются браузерами 
Opera, Chrome и Safari (
http://www w3 org/TR/webdatabase/
);
„
„
индексированные базы данных, IndexedDB, которые на экспериментальном уровне на 
момент написания этой главы поддерживаются в Chrome 12, Firefox 5 и Internet Explo-
rer 10 (
http://www w3 org/TR/Indexeddb/
).
Из названия «база данных SQL для веб» сразу становится понятно, как это работает: брау-
зер обращается к локальной базе данных при помощи SQL-запросов. Возможно, вы сразу 
же решили, что это ваш вариант, потому что вы уже знакомы с SQL. Небольшая потенци-
альная проблема заключается в том, что, как только вы открываете страницу специфика-
ции, вам в глаза сразу же бросается предупреждение: разработка данной спецификации 
продолжаться не будет. Однако она уже хорошо поддерживается, особенно в мобильном 
пространстве, поэтому я хочу продемонстрировать вам, как использовать этот API. Кроме 
того, Google реализовала базу данных SQL для веб в мобильной версии Gmail, поэтому я не 
сомневаюсь, что эта технология просуществует в браузерах еще достаточно долго.
Название «IndexedDB» не так описательно, хотя вы наверняка догадались, в чем суть. 
IndexedDB — это хранилище документов сродни популярным сегодня базам данных 
«NoSQL», таким как MongoDB. Фактически у вас есть ключ, и вы можете сохранить с этим 
ключом данные любого типа, а не оперировать заранее установленным количеством столб-
цов определенного типа, как в традиционных базах данных SQL. Интересно, что в центре 
взаимодействия с API находятся события. Подробнее об этом мы поговорим ближе к концу 
главы.
Веб-хранилище — это куда более простая система, в которой различные значения просто 
связываются с уникальными ключами. Здесь нет таких объемов кода, как при работе с Web 
SQL и IndexedDB. Вообще, поддержка API веб-хранилища реализована намного лучше, 
чем существующих альтернатив, но в будущем ситуация должна поменяться. У нас будет 
простой метод хранения (веб-хранилище) и крупное хранилище данных (IndexedDB, когда 
его поддержка будет реализована в остальных браузерах). Я рассмотрю все три интерфейса 
прикладного программирования. Вы узнаете, как они работают и как отлаживать добав-
ление и хранение данных в обеих системах.


Хранение данных  •  191
Что касается доступных объемов, то стандартный лимит веб-хранилища — 5 Мбайт (хотя 
при превышении этого лимита браузеры обычно выводят предупреждение, и пользователь 
может предоставить конкретному веб-сайту больше места на диске).
На противоположном конце спектра находятся базы данных SQL для веб, в спецификации 
которых никаких лимитов не предусмотрено. Создавая базу данных, разработчик должен 
сам определить для нее подходящий размер.
В спецификации IndexedDB ограничения не упоминаются (это может быть противопо-
ложный конец спектра по отношению к первым двум?), однако создается впечатление, что 
предел, установленный в Chrome, равен 5 Мбайт. Какие ограничения накладывают Firefox 
и IE10, неясно. Уверен, как только технология получит распространение в браузерах, все 
эти тонкости будут хорошо задокументированы.
Все данные привязаны к источнику документа, то есть к протоколу, хосту и номеру порта 
(по умолчанию 80). Это означает, что данные на сайте 
http://remysharp com
 не могут обра-
щаться к данным на безопасной версии 
https://remysharp com
.
В любом случае, если API не удается записать данные, браузер возвращает ошибку. Я буду 
рассматривать небольшие приложения, в которых объем данных в хранилище не превы-
шает 100 Кбайт.


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




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

    Басты бет