【发布时间】:2017-06-06 07:22:41
【问题描述】:
我发现自己将来自我的 api 调用的所有数据都放在设备本地存储中,我不确定将内容放在本地存储中还是将它们放在服务中是否重要。什么时候应该使用来自设备的本地存储与使用 Angularjs 服务?
【问题讨论】:
标签: angularjs ionic-framework ionic angular-local-storage
我发现自己将来自我的 api 调用的所有数据都放在设备本地存储中,我不确定将内容放在本地存储中还是将它们放在服务中是否重要。什么时候应该使用来自设备的本地存储与使用 Angularjs 服务?
【问题讨论】:
标签: angularjs ionic-framework ionic angular-local-storage
你有点混淆了概念。 对于 angularjs 服务,只要页面不刷新,它们就会持久保存数据,一旦您刷新页面或关闭浏览器选项卡,数据就消失了。
仅将 Angularjs 服务视为您声明的变量,其范围仅限于浏览器选项卡的生命周期。因此,您可以使用它来存储一些临时标志和值,这些标志和值不会被带到下一个会话。
然而,说到 localStorage,请将其视为一种数据库。无论您在 localStorage 中存储什么,都将保存在浏览器中,并且可以在多个选项卡和应用程序会话中使用[直到并且除非用户清除浏览器数据]。
由于您使用的是 Ionic 和 Cordova,因此您必须使用 localStorage 来保存用户名和密码等内容,以便用户下次打开您的应用时可以使用它们。请注意,关闭您的应用相当于关闭浏览器选项卡。
然而,如果您有某些数据在每次用户访问您的应用时都会不断刷新,您可以使用服务来存储它们,以便在应用关闭后立即将其删除。
比喻地,localStorage --> 次要的、非易失性的存储、angularjs 服务 --> 主要的、易失性的存储。
【讨论】:
存储在本地存储中的数据是持久的。所以,如果你重新加载你的网络应用程序,本地存储中的数据就在那里。本地存储通常限制为 5MB。见this
服务在内存结构中。因此,如果您将任何东西投入使用,它就会在浏览器的内存中,并且在刷新浏览器时会丢失。
所以这取决于你需要什么。
【讨论】:
您可以将此本地存储插件用于您的应用。 https://github.com/grevory/angular-local-storage
【讨论】: