【问题标题】:Ionic 2 storage module clarificationIonic 2 存储模块说明
【发布时间】:2017-02-17 23:40:50
【问题描述】:

ionic 2 存储存在很多混淆。随着 Storage 移动到 @ionic/strage,新的 ionic 版本有很多变化。我是Ionic 的新手,所以有些事情让我感到困惑。我有网络开发背景。从文档中,

基于 LocalForage 的 Ionic 应用的简单键值存储模块, 对 SQLite 提供开箱即用的支持。这个实用程序可以很容易地 使用可用的最佳存储引擎,而无需与 它直接。目前排序是 SQLite、IndexedDB、WebSQL 和 本地存储。

安装

npm install @ionic/storage

如果您想使用 SQLite 作为存储引擎,请安装 SQLite 插件(仅在模拟器或设备上运行时有效):

cordova plugin add cordova-sqlite-storage --save

我想知道的是,当我在浏览器中运行它时会发生什么?它在哪里存储数据?如果我不使用 cordova-sqlite-storage 会发生什么?那么它在哪里存储数据呢?

Ionic 还原生支持 SQLite 插件将数据存储在 SQLite 数据库中。

import { SQLite } from 'ionic-native'

除了回退到IndexedDB, WebSQL, and LocalStorage 之外,它与Storage 有何不同?

我希望我的想法是正确的。关于这些模块如何工作的明确答案将非常有帮助。

【问题讨论】:

  • "我想知道的是,当我在浏览器中运行它时会发生什么?它将数据存储在哪里?如果我不使用cordova-sqlite-storage会发生什么?它存储在哪里那么数据呢?”当您使用 cordova 插件时,它只能在设备或模拟器上运行。

标签: sqlite cordova ionic-framework ionic2


【解决方案1】:

Ionic Storage 是第一个考虑到适当的网络回退的模块。

我们对 Ionic 的一个近期目标是让开发人员能够在浏览器中构建 99% 的应用程序。这是一个更快的工作流程。这意味着支持具有 Web 后备功能的本机插件,以及更好地模拟那些没有的插件。 - Max Lynch on Twitter

默认运行时@ionic/storage会这样优先存储方式:

在原生应用上下文中运行时,存储将优先使用 SQLite,因为它是最稳定和广泛使用的基于文件的 数据库,并避免像 localstorage 这样的一些陷阱 和 IndexedDB,例如操作系统决定以低速清除此类数据 磁盘空间情况。

当在 Web 中运行或作为 Progressive Web App 运行时,Storage 将尝试按该顺序使用 IndexedDB、WebSQL 和 localstorage。 - Official Documentation

因此,当您的应用在浏览器中(或在没有 SQLite 插件的设备上)运行时,它会检测到 SQLite 不可用,并改为使用 IndexedDB/WebSQL。

除了可以回退到 IndexedDB、WebSQL 和 LocalStorage 之外,它与 Storage 有何不同?

SQLite 插件为您提供对 SQLite 数据库的低级访问权限,这意味着您必须关心创建/更新架构以及编写查询。

@ionic/storage 是一个包装器,它抽象了LocalForgeSQLite 的差异,并提供了一个简单、统一的API 来存储键/值对。

它还负责您的对象的序列化/反序列化。

【讨论】:

    【解决方案2】:

    根据我对 Ionic 2 RC 存储模块的理解,当您在浏览器中运行时,您现在只能存储键值对 (LocalStorage)。您目前无法存储除此之外的任何内容,因此如果您需要完整的 SQL 支持,您应该查看其他选项,例如 PouchDB 和 LocalForage。这绝对不是渐进式网络应用的理想选择。

    【讨论】:

    • 如果你使用 indexedDB 作为存储机制,你可以只存储键值对和任何存储,你可以存储任何东西(字符串、对象、blob 等)。 @ionic/storage 在屏幕后面使用 localforage。
    猜你喜欢
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 2017-05-30
    • 2017-11-21
    相关资源
    最近更新 更多