Предварительно загруженная локальная база данных для Javascript (возможно?) - PullRequest
4 голосов
/ 11 июля 2010

Недавно я видел статьи о создании и использовании HTML5 и локальных БД.Я также видел несколько примеров строк подключения Javascript к существующим бэкэндам Access Db.Я заинтересован в том, чтобы найти способ создать Db, предварительно загрузить его с записями и использовать веб-приложение для подключения и чтения Db.Например, я создал множество автономных приложений для Tcl в Windows, которые считывают файлы Sqlite Db.По сути, приложение (файл .exe) и файл Db располагаются рядом друг с другом в папке и функционируют как любое другое приложение Db, за исключением случаев, когда серверы не используются.

Я бы хотел сделать то же самое, но с веб-приложением (.html) и файлом Db.Кто-нибудь знает возможно ли это?В качестве примера я хотел создать языковое приложение, которое работает в любом браузере, с предварительно загруженными словами, сохраненными в бэкэнде.Таким образом, будет два файла: веб-приложение и файл базы данных.

Будем очень благодарны за любые предложения или ссылки на ресурсы.Единственное, что я мог придумать, это подключение к Access через OLE через Javascript, однако мне нужен Db, который является мультиплатформенным, как Sqlite.

Спасибо,

DFM

Ответы [ 2 ]

3 голосов
/ 17 апреля 2011

Вы можете получить доступ к уже созданному файлу sqlite db через javascript. Посмотрите на область «Расположение файла базы данных» этой ссылки http://code.google.com/apis/gears/api_database.html

Я знаю, что это для Google Gears, но Gears использует SQLite, а расположение по-прежнему применяется без Gears и только с использованием файла sqlite db.

Например, я использовал дополнение Firefox «SQLite Manager» для создания файла базы данных sqlite на моей локальной машине. Затем я скопировал этот файл в C: \ Users \\ AppData \ Local \ Google \ Chrome \ User Data \ Default \ database \ file__0

Мне удалось получить доступ к файлу с помощью JavaScript в Google Chrome:

    var db = null;

    try {
        if (window.openDatabase) {
            db = openDatabase("mydbfile.sqlite", "1.0", "HTML5 Database API example", 200000);
    ....

Вы должны быть осторожны с именем файла в Chrome, так как он автоматически присваивает каждому sqlite db номер идентификатора. Например, мне пришлось переименовать имя файла sqlite db в 14, чтобы он читался из JavaScript в браузере. Как только я это сделал, он работал как чемпион, и я смог получить доступ ко всем таблицам, данным и т. Д.

3 голосов
/ 11 июля 2010

Ваше веб-приложение, его локальная база данных и данные «заправки» должны будут где-то начинаться, поэтому я предполагаю, что все это будет запущено при подключении к веб-серверу.Когда приходит этот первый удар, вы:

  1. Доставите страницу и связанный с ней код.
  2. В своем JavaScript проверьте наличие базы данных.
    1. Существует?Не требуется грунтовка.Ничего не делать или синхронизировать и т. Д.
    2. Не существует?Постройте это и поставьте начальные данные.Если это медленно, вы можете дать пользователю дружественное предупреждение: «Настройка, пожалуйста, подождите».В зависимости от того, как вы нажимаете все эти данные, вы можете даже показать индикатор выполнения: «Инициализация базы данных: 10%» ...
  3. Нет шага 3.

После завершения установки это приложение может быть полностью локальным - нет необходимости в сетевом подключении - до тех пор, пока вы кодируете его без предположения о нелокальных ресурсах.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...