Ionic本地存储不持久化。

4

我正在使用本地存储来在Ionic中存储数据。我的问题是,与Web上的情况不同,本地存储不会持久化。

在iOS上,本地存储每隔几天就会被删除,在Android上更糟糕,一些设备上的本地存储表现得像会话存储,并在应用关闭时被清除。

这是我的本地存储服务:

angular.module('app.core')
.factory('localstorage', ['$window', function ($window) {
  return {
    setObject: function (key, value) {
      $window.localStorage[key] = JSON.stringify(value);
    },
    getObject: function (key) {
      return JSON.parse($window.localStorage[key] || null);
    }
  }
}]);

我读到了这篇文章:http://www.joshmorony.com/a-summary-of-local-storage-options-for-phonegap-applications/
本地存储有点不太好,通常被认为不可靠。我认为浏览器的本地存储可以是一个可行的选择,它相当稳定和可靠,但是数据可能会被清除,这意味着对于许多应用程序来说,它不是一个很好的选择。
这是为什么呢?

也许这就是为什么Ionic 2使用SqlStorage的原因:http://ionicframework.com/docs/v2/api/platform/storage/SqlStorage/ - Sarantis Tofas
@Akis_Tfs 很不幸,我有一个使用Ionic和Angular 1.x编写的应用程序。 - Dor Cohen
1个回答

4

在探索ionic中的localstorage使用问题后,我可以说一件事:

如果您需要数据持久化,请不要使用它。

我决定使用PouchDB来保持我的数据持久化。

Ashteya Biharisingh的帖子中

保存在localStorage中的数据应该是持久的,即使关闭应用程序或关闭手机也应该如此。 在大多数情况下,这将起作用,但是iOS和Android在设备上管理localStorage的方式存在问题。

iOS
在iOS 8上,当内存不足时,localStorage有时会被清除,您可以在此处阅读详细信息。

最近,我在一个我正在开发的Ionic应用程序中自己遇到了这个问题。 我在iPhone上收到通知说其内存不足,当我打开应用程序时,localStorage为空。 我的设备上还有另一个也使用localStorage的应用程序,但该应用程序没有被清除。

Android
我没有在Android上进行全面测试,但是如果您阅读此线程,您将看到有多个报告称localStorage无法按预期工作。

您可以在此处找到一个非常好的指南。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接