БАЗЫ ДАННЫХ SQL ДЛЯ ВЕБ Еще один вариант хранилища, позволяющего записывать и обращаться к данным, — это
базы данных SQL для веб. Как подразумевает название, речь идет об обычной базе данных,
в которую можно отправлять запросы и объединять результаты. Если вы знакомы с SQL,
то в API баз данных будете чувствовать себя как рыба в воде. С другой стороны, если вы
ничего не знаете о языке запросов SQL и, в частности, об SQLite, учить вас я не собираюсь:
для этого предназначены другие толстые и страшные книги. Веб-сайт SQLite со всеми не-
обходимыми ресурсами находится по адресу
http://sqlite org
.
Размер баз данных в спецификации указан несколько расплывчато. При создании новой
базы данных предполагаемый максимальный размер должны указать вы сами как ее автор.
Следовательно, это ваше дело — оценить ее в 2 Мбайт или в 20 Мбайт. Если предполагае-
мый размер базы данных оказывается больше размера хранилища по умолчанию, в Safari
пользователю предлагается разрешить или запретить базе данных превысить размер по
умолчанию. Opera и Google Chrome разрешают создавать базы данных любого размера, не
выводя никаких предупреждений. Я настоятельно рекомендую вам относиться к размерам
баз данных с большой осторожностью. В целом, по умолчанию браузеры ограничивают
размер базы данных для каждого домена пятью мегабайтами. Теперь вы вполне обосно-
ванно волнуетесь о размере базы данных SQL, но у меня для вас хорошие новости. В API
баз данных SQL для веб все методы позволяют передавать обратные вызовы, которые
исполняются после того, как совершается некое внутреннее волшебство SQL. Обратные
вызовы — это характерная черта многих библиотек JavaScript, таких как jQuery. Если вы
незнакомы с синтаксисом, обратный вызов выглядит примерно так (однако не беспокой-
тесь раньше времени, я помогу вам с последующими примерами):
transaction.executeSql(sql, [], function () {
// здесь находится исполняемый код
});
Из-за самой природы обратных вызовов это также означает, что API баз данных — асин- хронный. Будьте очень осторожны при реализации общения JavaScript и базы данных,
так как ошибка может привести к тому, что события будут происходить в неверной по-
следовательности. В то же время операторы SQL помещаются в очередь и исполняются по
Хранение данных • 203 порядку, и это дает хоть и небольшое, но все же преимущество в деле контроля над по-
рядком исполнения: создавая таблицы, вы можете твердо знать, что на момент исполнения
запросов они уже существуют.