Индексация данных, хранящихся локально, через настройки

Есть ли способ индексировать данные, которые были сохранены локально, с помощью forge.prefs.set()?

Для приложения, над которым я работаю, локально хранится большой объем данных, и получение данных с помощью forge.prefs.get() может быть медленным.


person jtruit01    schedule 09.03.2016    source источник


Ответы (2)


Есть ли конкретная причина, по которой вы используете prefs вместо indexDB? prefs на самом деле не предназначены для хранения больших объемов данных, на самом деле они предназначены для хранения некоторых пользовательских настроек, но большие индексы будут медленными.

Я очень рекомендую localforage, так как он обеспечивает хорошую прокладку и очень похож на запрос localstorage.

У меня были похожие потребности, и я когда-то пробовал префы, но они, как упоминалось, были слишком медленными, я сделал это из-за ограничения локального хранилища в 5 мегабайт, затем я переключился на indexDB ( localforage ), поскольку он делал то, что мне нужно, и был быстрым. То, как я работаю, заключается в том, чтобы сбросить мое локальное хранилище в переменную времени выполнения при загрузке приложения, таким образом, я могу быстро получить к нему доступ и выполнить итерацию по объекту с помощью простого цикла.

Если вам нужна более сложная операция, есть и другие прокладки, но они сложнее, чем localforage.

person proxim0    schedule 09.03.2016
comment
Мы сохраняем данные, чтобы приложение могло работать вне сети компании, и forge.prefs.set() был вариантом, с которого мы начали, поскольку в то время данных было немного. Объем данных, которые нам нужно хранить, в последнее время значительно увеличился, поэтому я просто ищу эффективные способы хранения и извлечения этих данных. Я рассмотрю решение indexDB, о котором вы упомянули. Спасибо! - person jtruit01; 09.03.2016
comment
Да, я бы посмотрел на localforage, тогда он прост в использовании и, как я уже сказал, это прокладка, поэтому он будет использовать все, что когда-либо поддерживается (не так важно, как раньше, но все равно приятно) mozilla.github.io/localForage - person proxim0; 10.03.2016

forge.prefs использует android.content.SharedPreferences и NSUserDefaults на Android и iOS соответственно.

(См.: https://github.com/trigger-corp/trigger.io-prefs/tree/master/spector)

Хотя нет верхнего предела объема данных, которые они могут сохранять, они не особенно хорошо подходят для обработки больших объемов данных.

Я бы либо пошел с IndexedDB, как это было предложено proxim0, либо, возможно, даже с WebSQL.

(WebSQL является официально устаревшим, но маловероятно, что веб-среды выполнения iOS или Android в ближайшее время прекратят поддержку. См. также: https://softwareengineering.stackexchange.com)

person Antoine van Gelder    schedule 10.03.2016