问题标签 [localforage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2486 浏览

json - 我应该使用 Lawnchair 还是 localForage 来离线维护数据

我正在使用 Ionic 框架编写应用程序。我使用 mongodb 作为云中的数据存储,但列表过于全面,会降低应用程序的速度。在花费数百万小时阅读有关客户端存储的信息后,我仍然没有明确的答案。

我希望有可能从客户端提供这些全面的 json 文件,这是 ios + android + windows 手机,但没有“服务器”来提供服务,这个想法似乎是一个愚蠢的想法。不知道我对 Angular 中其余 API 的有限理解是否有问题,但从逻辑上讲,这个想法没有意义。

查看本地 sql 客户端,我调查了 sqlite。由于在这些不同平台(ios + android + windows phone)上的 sqlite 实现会很痛苦,我查看了不同类型的浏览器缓存。

我不想详细介绍,但 localstorage 对于我的结构来说很简单,并且其他选项不被支持或弃用。一团糟。但是,我发现关于离线数据解决方案的两个选项是 Lawnchair 和 localForage。

这两者之间有什么区别,因为它们提供了基于客户端的最全面的解决方案。任何愿意提出更好/更差选择的人。

然后是我也想使用应用程序缓存缓存的站点文件,但我不确定如何缓存,因为我使用的是https://www.npmjs.org/package/generator-ionic方式。

0 投票
1 回答
67 浏览

javascript - jQuery全局变量访问混乱

我有一个非常具体的问题,我正在尝试使用 localforage 库获取数据,并将其分配给一个全局变量,它是一个 JSON。

我对这个问题很困惑,请纠正所需的

0 投票
1 回答
941 浏览

javascript - 在 for 循环中来自 LocalForage 的 JavaScript 链接承诺

我试图getItem从 LocalForage 库中链接多个承诺,键是从数组中读取的。

问题: 在所有 LocalForage 承诺完成后,我需要 Resolve 或 Reject 回调来触发。

两种方法都没有正确的调用堆栈。有任何想法吗?

代码 1:

代码替代:

0 投票
1 回答
397 浏览

kendo-ui - 如何使 Kendo 数据源的离线存储中的 getItem 方法与 LocalForage 一起使用

我需要设置我的数据源以使用 localForage 来管理我的离线数据存储。

我遇到的问题是 localForage 本质上是异步的,只允许我们使用回调或承诺来检索数据。

这就是我的代码的设置方式:

离线时,调用 getItem,然后调用 setItem 以及一个空数组,因此:

当 promise 最终返回离线数据(具有我期望的正确值)时,Grid 不显示任何结果。

这种行为想必是因为诺言?

我用 sessionStorage 尝试了同样的事情,它工作得很好......即:

我能做些什么来解决这个问题?

0 投票
0 回答
220 浏览

ember.js - emberSync.find 有效,但 emberSync.save() 无效。为什么?

我正在使用 ember-sync、ember-localforage-adapter 和 emberfire 来解决 iOS/android 应用程序中的离线存储问题。并且由于某些未知原因(我没有收到任何错误,这是最糟糕的部分) emberSync.find/pulling data from firebase 有效,但 emberSync.save()/pushing data to firebase 没有。

任何帮助将不胜感激。

我在这里提出了一个问题:https ://github.com/kurko/ember-sync/issues/22

如果在加载应用程序后我在控制台中执行此操作:

我得到:

然后,当我输入以下内容时:

我明白了:

然后当我输入这个:

我明白了:

controllers/index.js

models/user.js

routes/index.js

templates/index.hbs

然后我去我的firebase仪表板,我看到没有添加任何东西......

但是,这:route.emberSync.find('user', '2oj9m')工作正常并返回一个承诺

所有代码都可以在这里找到(主分支):https ://github.com/codepreneur/embersync-localforage-example

0 投票
0 回答
444 浏览

html - 清除缓存和 localForage (IndexedDB) 后在加载页面时出错

DOMException:无法在“IDBDatabase”上执行“事务”:数据库连接正在关闭。

刷新页面后完美运行。这仅在第一次加载页面时发生(在清除缓存和 IndexDB 之后)。

IndexedDB 是如何连接到缓存的?

将不胜感激任何帮助!谢谢

0 投票
1 回答
138 浏览

javascript - 处理来自客户端存储的数据以进行页面渲染

为页面渲染处理来自客户端存储的数据的最佳方式是什么?为了让情况更清楚:我们打算拥有灵活的抽象架构 - 可以在后端更改事物,并且应该导致前端部分的更改。

因此,例如,在前端,我得到了具有基本结构的深层嵌套 JSON - 可用服务、属性等。我想将它解析为一些普通数组,使用这个数组进行页面渲染(对不同类型的服务使用适当的小部件),并存储在一些客户端存储中以备将来使用,当用户再次访问该页面时 - 使用来自客户端的先前缓存的数据进行页面渲染(如果服务器上没有添加新服务)。我打算使用的技术是 angularJS、localForage 和 angular-localforage lib。所以,我有以下问题:

  1. 处理数据的最佳方式是什么- 我计划在一个事务中从客户端存储中获取整个数组(关于特定页面) ,将其放入 Angular 应用程序并从应用程序中使用,然后用于页面渲染。是否合适且有效?或者也许我应该在小交易中获取日期数据,逐项服务?将数据缓存到客户端存储也是同样的问题。
  2. 如果我有一些大交易,我是否有让其他事情变慢的风险,或者这种风险在包装或存储架构中被抵消了?
  3. 如果用户更改存储类型(例如从 localStorage 到 indexeddb),我找不到有关迁移的实际信息。问题是开放的,所以我似乎每次都需要检查存储类型,如果发生更改 - 再次从服务器重新缓存数据。这是唯一可能的方法吗?
  4. 所选架构/技术是否存在任何问题/缺点?你能建议改变或增加一些东西吗?
  5. 什么适合在 localForage 提供的简单键值结构中搜索数据?例如,如果我需要 parent_id=42 的元素 - 我是否应该获取应用程序所需的全部数据、组织它并在应用程序中执行查询?还是做一些棘手的存储结构?或者有什么更好的方法?
0 投票
1 回答
928 浏览

javascript - 是否可以在 angular-localForage 中创建多个数据存储?

是否可以使用angular-localForage在 IndexedDB 中拥有多个数据存储?

我试过这个:

但它触发了一个错误,上面写着:

错误:已定义名为 dbName 的 localForage 实例。

我之前读过这个问题,但是,唯一的方法是使用 Raw IndexedDB 吗?或者我错过了我的代码中的某些内容?任何想法?

0 投票
1 回答
1907 浏览

javascript - 追加到 localForage 中的数组

我正在使用 localForage 在网站上存储一些数据以使其离线。

我想要一个键并附加到值/数组。

到目前为止,我只能弄清楚如何从存储中检索整个键/值,然后再次附加并设置整个键/值。这似乎非常浪费,并且当键/值变大时可能会出现问题。

没有更有效的方法吗?以及键/值必须有多大才能注意到性能问题。

0 投票
1 回答
2598 浏览

javascript - IndexedDB,如何在不重新加载页面的情况下获取更新的数据?

我正在使用 angular-localforage,并且我的 IndexedDB 中有一些键。当我为我的键设置新值时,它似乎仍然具有以前的值,因为我重新加载页面并且它似乎具有最新值。

是否有任何解决方案可以在不重新加载页面的情况下获取更新数据?

** 虽然我认为这不是我的代码错误,因为当我使用 setItem() 和 removeItem() 添加新项目或删除主题时,需要重新加载页面以查看开发人员工具资源中的更改。

** 如Mozilla Developer中所述:IndexedDB 最初包含异步 API 和同步 API;但是同步版本被从规范中删除,因为它的需求是有问题的。所以我认为我的问题目前可能没有任何绝对答案,顺便说一句,任何资源、文章和链接都会有所帮助。:)