Можно ли получить доступ к базе данных SQLite из JavaScript?


У меня есть набор HTML-файлов и база данных SQLite, к которой я хотел бы получить доступ из браузера, используя файл:// scheme. Можно ли получить доступ к базе данных и создавать запросы (и таблиц) с помощью JavaScript?

6 67

6 ответов:

на самом деле ответ-да. Вот пример, как вы можете это сделать:http://html5doctor.com/introducing-web-sql-databases/

плохо то, что это с очень ограниченной поддержкой браузеров.

более подробная информация здесь HTML5 IndexedDB, веб-база данных SQL и браузерные войны

PS: Как сказал @Christoph Web SQL больше не находится в активном обслуживании, и рабочая группа по веб-приложениям не намерена поддерживайте его дальше Так смотри сюда https://developer.mozilla.org/en-US/docs/IndexedDB.


EDIT

как сказал @clentfort, вы можете получить доступ к базе данных SQLite с помощью клиентского JavaScript с помощью SQL.js.

вы могли бы использовать SQL.js который представляет собой sqllite lib, скомпилированный в JavaScript и хранящий базу данных в локальном хранилище, представленном в HTML5.

актуальный ответ

моя вилка sql.js теперь будет объединен в оригинальная версия, на репо крикена.

The хорошая документация также доступна в исходном РЕПО.

оригинальный ответ (устаревшее)

вы должны использовать новая версия sql.js. Это порт sqlite 3.8, имеет хорошая документация и активно поддерживается (по мне). Он поддерживает подготовленные операторы и тип данных BLOB.

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

  1. веб-хранилище: для базового локального хранилища с парами ключ / значение
  2. автономное хранилище: использует манифест для кэширования целых файлов в автономном режиме используйте
  3. Web база данных: для хранения реляционных баз данных

для получения дополнительной информации см. введение в HTML5 API для хранения данных

и как использовать

http://cookbooks.adobe.com/post_Store_data_in_the_HTML5_SQLite_database-19115.html

IMHO, лучший способ-вызвать Python с помощью POST через AJAX и сделать все, что вам нужно сделать с БД в Python, а затем вернуть результат в javascript. поддержка json и sqlite в Python является удивительной, и она на 100% встроена даже в несколько последних версиях Python, поэтому нет "установить это, установить это". В Python:

import sqlite3
import json

...это все, что тебе нужно. Это часть каждого дистрибутива Python.

@Sedrick Jefferson попросил примеры, так что (несколько запоздало) я написал автономный назад и вперед между Javascript и Python здесь.

Как насчет использования чего-то вроде PouchDB? http://pouchdb.com/