Я ищу, чтобы найти лучшие практики для сохранения данных Angularjs в приложении PhoneGap. Я использую Ionic Framework поверх этого, но не относящийся к этому вопросу, поскольку он просто построен поверх Angular и Cordova.
Мне нравится, что Angular остается гибким в решениях сохранения данных, это имеет смысл, поскольку это веб-инфраструктура, а не только инфраструктура гибридных приложений... хотелось бы знать, как люди решают эту проблему.
Вот обзор:
Требования
- Добавить локальную базу данных в сборку приложений для предварительно загруженных данных. Это будет превышать предел данных 5 МБ.
- Загружать данные из локальной базы данных при запуске.
- Сохранение обновленных данных в локальном хранилище данных для сохранения.
- При желании предпочтительнее использовать схему.
- Простой интерфейс запроса. Я мог бы загружать все данные в память и просто использовать стандартные фильтры Angular для этого, если производительность была приличной.
- Интерфейс объектных запросов... что-то вроде ORM, подобной ActiveRecord, вместо того, чтобы писать SQL в моем приложении.
- Будущее доказательство. Я не хочу изобретать велосипед каждый раз, когда я создаю приложение, которое нуждается в постоянстве данных. Также хотел бы выбрать что-то более стандартное, если это возможно, чтобы я мог продолжать использовать его в будущем... что-то вроде Indexeddb имеет смысл здесь.
Функции
Я рассматривал следующие параметры. Можете ли вы предоставить любую обратную связь по любому из них?
- Breezejs - больше ориентируется на сервер. Есть ли интерфейс SQLite?
- YDN-DB - похоже на вариант, но также кажется немного неясным по сравнению с некоторыми другими вариантами.
- JayData - все еще активна? Обеспокоена коммерческим аспектом этого.
- Persistencejs - Это выглядит многообещающим. Является ли проект еще активным?
- ngStorage - это только интерфейс localStorage? Решает ли он ограничение 5M?
- Angular -cache - Могу ли я получить данные для предварительной загрузки? Как долго я могу сохранять данные?
- localForage - не знаю много об этом. Решает ли он ограничение 5M?
- Pouchdb - обеспокоен языком запросов. не решает ограничение 5M
- Couchdb Lite - обеспокоен языком запросов.
- WebSQL - я не использую это, потому что кажется, что он на пути... плюс предел 5M.
- Indexeddb - имеется прокладка, которая создает совместимый слой для большинства основных браузеров. 5M предел. Если бы я мог использовать это на вершине Sqlite, что, вероятно, станет для меня победителем, поскольку все больше основано на стандартах.
- Сохранить в json файле. Просто используйте простые старые объекты, а затем используйте файл apg для работы с телефоном и загружайте сериализованные данные. Похоже на боль, чтобы сериализовать все данные каждый раз, когда мы хотим сохранить... но вариант, пока я могу использовать фильтры Angular.
Извините за длинный пост. Я действительно хотел бы увидеть некоторые мысли о лучших практиках. Понравился бы Angular способ справиться с большой устойчивостью данных в гибридных мобильных приложениях.
Спасибо