Как инициализировать localForage для мобильного приложения - PullRequest
0 голосов
/ 22 марта 2019

Я новичок в разработке мобильных приложений и планирую создать приложение с использованием простого HTML и jQuery с пользовательским интерфейсом Onsen.

Я прочитал, что мы можем использовать localForage в качестве базы данных, и у меня есть несколько вопросов.

  1. Обязательно ли иметь имя базы данных для моего приложения.Если нет, то другие мобильные приложения также могут использовать localForage.Будет ли БД одинаковой для всех приложений.

  2. В документе здесь говорится, что config следует вызывать перед каждым действием.Итак, это нормально, если он инициализируется при загрузке страницы следующим образом:

    $ (document) .ready (function () {
    localforage.config ({
    name: 'myApp',
    версия: 1.0,
    storeName: 'keyvaluepairs'
    });
    });

или оно должно быть объявлено перед каждым действием (получить, установить, очистить и т. д.)

Как мы можем узнать, что действие вызывает нужную базу данных, поскольку это не указано в методах действия.

Обязательно ли иметь имя магазина.

1 Ответ

1 голос
/ 01 апреля 2019
  1. Обязательно ли иметь имя базы данных для моего приложения. Если нет, то другие мобильные приложения также могут использовать localForage. Будет ли БД одинаковой для всех приложений.

A: Да и нет. Фактически обязательно иметь имя базы данных. Однако, если вы оставите его неустановленным, используется значение по умолчанию "localforage".

  1. В документе сказано, что config следует вызывать перед каждым действием. Итак, это нормально, если он инициализируется при загрузке страницы, как это ...

A: Да, начинать в $(document).ready(cb) вполне нормально. На самом деле, это хорошо для «инициализации» в любое время, при условии, что вы убедитесь, что это происходит до того, как вы впервые вызовете какое-либо реальное действие (setItem / getItem и т. Д.).

  1. Как мы можем знать, что действие вызывает нужную базу данных, поскольку это не указано в методах действия.

A: localforage может иметь несколько экземпляров, тогда как каждый экземпляр связан только с одной базой данных (точнее, он связан с конкретным хранилищем этой конкретной базы данных). Вы знаете, что действие нацелено на конкретную базу данных, потому что эти действия являются методами определенного экземпляра . Здесь нет двусмысленности.

Я лично предлагаю вам назвать ваш экземпляр в явном виде:

var myAppDb = localforage.createInstance({
  // these are the same options accepted by localforage.config()
  name: 'myApp',
  version : 1.0,
  storeName : 'keyvaluepairs'
});

myAppDb.setItem('foo', 'bar');

Таким образом, вы на 100% уверены, что действие выполняется в базе данных «myApp»; -)

  1. Обязательно ли иметь название магазина.

Опять да и нет. Но подождите, выслушайте меня, это немного сложно.

В то время как база данных по умолчанию фактически называется «localforage», хранилище в localforage имеет странную внутреннюю концепцию неназванное хранилище по умолчанию . Я лично нахожу это очень запутанным. И это ведет себя довольно странно, когда вы используете LOCALSTORAGE в качестве драйвера.

Таким образом, эмпирическое правило всегда называет ваш магазин. Просто относитесь к этому как к обязательному. Если у вас есть только один магазин в одной базе данных, возможно, назовите его «default». Звучит лучше, чем "keyvaluepairs", тебе не кажется?

...