在我的 Ember.js 应用程序中的 localStorage.clear() 或 deleteRecord() 之后,本地存储数据被复活

Hao*_* Li 5 local-storage ember.js

在我的 ember 应用程序中调用localStorage.clear()or deleteRecord()jsbin 示例)之后,我观察到数据复活。

请按照以下步骤复制问题:

  1. 打开 chrome web dev --> 资源 --> 本地存储 --> “ http://jsbin.com
  2. 在此页面上添加一些组织并观察它们是否已添加到本地存储
  3. 单击“清除本地存储”(情况 1)或“删除组织数据”(情况 2),观察本地存储已被清除。不要刷新页面。(数据仍然保留在页面上,但这没关系,因为我们还没有刷新页面。)
  4. 再添加一个组织,观察所有被删除的组织都复活了(情况1)或者LS没有被删除(情况2)
  5. 因此,当您刷新页面时,所有已删除的数据都会恢复。

问题:

  1. 为什么会发生这种数据复活呢?
  2. 即使清除后没有刷新(手动或调用) ,如何使 localStorage.clear() 工作location.reload

稍后编辑以包含deleteRecord()

Hao*_* Li 2

问题已在 9 月份的 Ember 数据/本地存储版本中修复。在这个 SO Answer 中查看它的实际情况和 jsbin

在与 IRC 上的人们进行一些讨论后,LSAdapter 或 Ember Data 中目前存在一个错误,导致数据徘徊。

由于 Ember 数据即将发生变化,该问题已于 2013 年 8 月暂停。

此问题的解决方法是清除本地存储和 ember 数据。看看它在这个 jsbin 中的工作情况

或者,您可以location.reload()在清除本地存储后立即调用以显示新数据。