Я ищу, чтобы найти лучшие практики для сохранения данных Angularjs в приложении PhoneGap. Я использую Ionic Framework поверх этого, но не относящийся к этому вопросу, поскольку он просто построен поверх Angular и Cordova.
Мне нравится, что Angular остается гибким в решениях сохранения данных, это имеет смысл, поскольку это веб-инфраструктура, а не только инфраструктура гибридных приложений... хотелось бы знать, как люди решают эту проблему.
Вот обзор:
Я рассматривал следующие параметры. Можете ли вы предоставить любую обратную связь по любому из них?
Извините за длинный пост. Я действительно хотел бы увидеть некоторые мысли о лучших практиках. Понравился бы Angular способ справиться с большой устойчивостью данных в гибридных мобильных приложениях.
Спасибо
PouchDB dev здесь. Очевидно, я предвзятый, но здесь я беру:
Лучший способ обойти квоты на хранение в PhoneGap/Cordova - использовать плагин SQLite для iOS/Android. Производительность также лучше, особенно на Android. ( Изменить: в современном пост-Kitkat Android это действительно хуже.)
В WebSQL есть хороший язык запросов, но вы хотите быть надежным, то есть не привязывать себя к мертвому стандарту. Там также можно использовать Windows Phone и Firefox.
Итак, если вы используете PouchDB и устанавливаете плагин PhoneGap, он будет работать в кросс-браузере, и вы избежите ограничения на хранение на iOS/Android. Win?
Кроме того, это мой личный опыт, который Angular соответствует PouchDB, как PB & J, поскольку Angular имеет дело с прямолинейными объектами JSON, а также делает Pouch. (Сравните это с Ember и Backbone, у которых есть пользовательские классы, которые вы должны экспортировать в /import из JSON – это немного сложнее.)
Удачи в том, что вы выберете!
Вы можете использовать localForage и мою реализацию в angular: https://github.com/ocombe/angular-localForage На мобильном устройстве он будет использовать индексированный DB или webSQL, а начальный предел будет 50 МБ. Синтаксис будет очень прост в использовании в вашем проекте angular.
Indexeddb - имеется прокладка, которая создает совместимый слой для большинства основных браузеров. 5M предел. Если бы я мог использовать это на вершине Sqlite, это было бы для меня победителем, поскольку все больше основано на стандартах.
Собственно, предел для WebSQL (слой ниже прокладки, который вы фактически используете под капотом) составляет * 50 * M. Однако есть запрос на доступ, который вы можете использовать для получения большего объема хранилища. Кроме того, это то, что я бы порекомендовал именно по таким причинам: стандартам. Ходят слухи, что Safari 7.1 будет поставляться с поддержкой IndexedDB.