从上游处理本地Web存储更改的推荐方法是什么?

时间:2014-09-22 09:58:43

标签: javascript angularjs local-storage

问题在于一般方法。对我来说,我尝试使用带有ngStorage的AngularJS来解决问题。

我们说我在本地存储中保存了这样的东西:

$scope.$storage = $localStorage;
$scope.$storage.food = { type: 'candy', eaten: false }

通过这种方式,我已将其保存在本地存储中。因此,下次用户访问我的页面时,我知道他/她是否已经吃过糖果。但是,在将来,我会更改我的应用并更改食物的结构。

那么我应该如何更新呢?必须要注意的两件事是:

  1. 通知客户新的存储结构。
  2. 将该更改与旧存储集成。
  3. 我的方法是使用版本字段来指示更改,并在看到后,重置所有客户端存储。

1 个答案:

答案 0 :(得分:1)

此过程称为"数据迁移" (即随着应用程序的发展而升级数据结构)。这是来自数据库世界的一个众所周知的问题(以及之前的配置/首选项文件)。

通常的方法是在数据结构的标头中添加一个版本。这意味着标头始终是相同的(或只是向后兼容方式的变化),而有效负载(实际数据)可以根据需要进行更改。

一个简单的解决方案只检查版本并在版本不匹配时使用默认值。更复杂的方案包含迁移代码,可以将数据结构从版本N升级到N+1。然后,控制代码将应用将所有数据结构升级到最新版本所需的所有迁移步骤。