WebSQL — реляционная база данных на веб-странице

WebSQL DB — это API для доступа к полноценному SQL-хранилищу данных, основанному на SQLite. Впрочем, последнее обстоятельство — скорее, особенность реализации и стандартом не оговаривается, хотя диалект SQL используется именно от SQLite. (Вообще, использование SQLite в веб-браузере — практика не новая: Firefox и Chrome давно применяют эту компактную СУБД для хранения настроек, паролей, закладок.)

Работает этот механизм так:

Var db = tpenDatabase(‘my_db’,’1.0′,’test’,2*1024*1024, function(){ console. log(‘БД открыта!’)

} , function(){

Console. log(‘новая БД!’)

});

Код создает объект для взаимодействия с базой данных. Если БД с таким именем не существует, она будет создана. Аргументы метода следующие:

- имя БД;

- версия БД;

- видимое название;

- объем БД (предполагаемый);

- функция обратного вызова, вызываемая при успешном открытии;

- функция обратного вызова, вызываемая при создании новой БД. Далее можно делать запросы, оборачивая их в транзакцию:

Db. transaction(function(t){

T. executeSql(‘SELECT title FROM documents’, [], function(){ });

}

Функция получает аргумент — объект транзакции (transaction object), вторым аргументом метода которого e xecuteSql (обязателен только первый — строка запроса) является массив аргументов для запроса, подставляемых в него вместо знаков ‘?’ (плейсхлодеров):

Db. transaction(function(t){

T. txecuteSql(‘INSERT INTO documents (title, type) VALUES (?, ?)’, ['Order',3]);

}

Чтение сохраненных значений производится из полей объекта набора значений, возвращаемого в результате соответствующего SQL-запроса:

T. exesuteSql(‘SELECT title FROM documents WHERE created < ?’ , [min_create], function(t, result){

For(i=o; i < result. rows. length; i++){ doc_name = result. rows. item(i).title; console. log(doc_name);

}

});

Все это замечательно, но в документации по WebSQL на сайте w3.org в разделе статуса документа значатся следующие печальные слова:

Beware. This specification is no longer in active maintenance and the Web Applications Working Group does not intend to maintain it further.

Решение не поддерживать больше спецификацию WebSQL еще не ставит крест на технологии, но по крайней мере обозначает потерю к ней интереса у лидеров разработки. Почему WebSQL вдруг оказался в немилости? Основная причина заключалась в том, что по своей природе эта БД должна следовать принципам SQL-стандарта, а производители браузеров не хотели впадать в зависимость от изменений в сторонних технологиях. Кроме того, саму SQL-модель многие посчитали если не устаревшей, то малопригодной для хранения данных в веб-среде. С последним утверждением можно поспорить, но, как бы то ни было, предпочтение в этой области сейчас отдано другой технологии.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *