Обновить
Комментарии 36
Спасибо, а еще есть SQLite Administrator.
sqlite и то, о чём написал автор — разные вещи.
Хехе, Webkit использует SQLite для хранения баз данных, так что ээээ не обижайте человека.
А есть опыт реального использования? Было бы интересно почитать.
есть опыт реального использования.
У нас киоски (ну типа апаратов quiwi или как там их) работают не как у всех на flash и adobe air а именно на Chromium. Опыт положительный, но еще не время публикации этой инфы для широкомасштабной публики. Через месяц-полтора опубликуем статью.

Пока более ничего не скажу.
А какой макс. объём данных можно хранить в одной базе (в браузере)?

Если будет переполнение, что делать? Можно ли увеличить объём?

У нас там всего лишь корзина, ну и кэш по некоторым данным продуктов (это своеобразный инет-магазин). Не думаю, что наша база превышает 10М. На переполнение не тестировали, но идея хорошая — надо бы.

Не забудьте, что при openDatabase вы задаете нужный вам объем…
Я проверил в Хроме — там 5 мегов ограничение, хотя проставил 100 Мб. Проставил 100 Кб, всё равно 5 Мб предел. Не работает это в Хроме.

Проверять на ошибки записи (в том числе переполнение) можно, обрабатывая функции ошибку (третья):

                chrome.extension.getBackgroundPage().Storage.db.transaction(
                	function (tx) {
                             //.... тут записываем в базу
                        },
                    function(sqlError) {
//.. тут находимся, значит ошибка какая либо. код ошибки в .code
                    },
                    function() {
                    	}
                    }


В других браузерах пока не успел проверить.

Но в Хроме также можно хранить в localStorage, поэтому это ещё +5Мб. Он не проверяет на общее ограничение памяти.

Это я создаю одно расширение для Хрома, Оперы и Firefox. Сначала использовал localStorage, но памяти маловато и много уходит на экранировку и повторы ключей. Поэтому решил перейти на sqlite…

Какие ещё есть варианты увеличения объёма?
В Хроме можно обойти ограничение, используя в манифесте

«permissions»: [
«unlimitedStorage»
],

А вот в Опере ограничение 5 Мб и похоже ничем это не увеличить…
Добавлю также, что по умолчанию размер базы данных равен 5 Мб. Можно и больше, но при попытке создать БД размером больше 5 Мб, браузер выдаст соответствующее предупреждение.
Спасибо за статью.

Было бы неплохо добавить статью реальными примерами, где это могло понадобиться.
я бы тоже почитал статью о опыте кто уже это применяет, поскольку достаточно часто сталкиваешься с ситуацией когда загружаешь достаточно большое кол-во данных клиенту, а затем с ними необходимо манипулировать (фильтарция, сортировки, поиск и пр.), сейчас реализуется за частую аякс запросами к серверу и повторной подгрузкой результата… но почему бы и не организовать на клиенте.
ну вот вам пример:
при обрыве связи и неудачной посылке данных на сервер продолжать работу локально, а при возобновлении синхронизироваться и продолжить работу дальше.
Я пока пользуюсь массивами. Работает даже на IE6…
Для этого есть актуальные данные на сервере… :) А фильтрация, сортировка и поиск не изменяют данные :)
на мобильных браузерах с поддержкой Geolocation API можно сохранять данные, по которым потом можно построить gps трек передвижений.
Использую данную технологию в мобильном клиенте для своего приложения. В связке с jQTouch получается красиво и функционально.
в ie следует ожидать движок ms sql compact, в mozilla точно sqlite, а какой в хроме?
Хром наверняка тоже использует sqlite как бекенд к web sqli db.
а так же красивые, мощный расширения.

Исправьте, пожалуйста, уж очень сильно бросается в глаза.
вроде это не только в Хроме, а во всех WebKit based браузерах
Казалось бы, причем здесь Chrome, в Safari тоже самое есть. Это функционал WebKit.
осталось найти какой-нибудь удобный jquery плагин для работы и можно быть довольным
Есть ли способы определения, поддерживает ли браузер WEB SQL DB?
if (typeof window['openDatabase'] == 'function')
Поддержат ли это другие браузеры? Станет ли такое хранение данных на стороне клиента стандартом?
Интересно было бы устроить тест производительности этой базы…
это часть стандарта html5 так что к году этак 2022 (вроде так) будут поддерживать большинство.
Ну а про тестирование производительности… как-то даже и не задумывался об этом. Не те задачи. не с mysql ем же сравнивать
Работает в сафари и айфон сафари.
Посмотрел C:\Users\1\AppData\Local\Google\Chrome\User Data\Default\databases\file__0\ там файлы под номерами… там 6,7
можно как-то управлять создаваемым именем?
я думал он будет называться как моя БД
скажем я написал db = openDatabase(«MyDB», «1.0, „My DB.“, 5 * 1024 * 1024);
а в папке файл называется просто 8
(
а на андроиде chrome где базу сохранит кто-нибудь знает?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.