对于 ASP.NET 页面,术语“应用程序数据”是指所有用户通用的数据,而术语“ session 数据”是指特定于给定用户 session 的数据(并且在日志之间不存在) -ins)。
但是,在讨论 Windows 8 应用生命周期时,定义似乎发生了变化。
对于 Windows 8 应用程序,术语“应用程序数据”似乎是指特定于给定用户的数据(并且在登录之间持续存在),而“ session 数据”似乎是指特定于给定登录的数据 - session 中。
在线 Microsoft 教程(对我来说)对“应用程序数据”和“ session 数据”的分类似乎有点模糊。看来(再次对我来说),“应用程序数据”只是您希望在 session (或挂起终止事件)之间保留的任何数据,而 session 数据只是您不想在 session (或挂起终止事件)之间看到的数据。终止事件)
我的理解正确吗? “应用程序数据”和“ session 数据”的定义仅仅是 session 之间如何存储和检索数据的问题(因此 - 不是真正的数据决策,而是设计决策)?
谢谢。
最佳答案
暂时把术语放在一边,最好只看一下应用程序状态及其要求。
首先,每当应用程序运行时,一些设置和配置都应该始终保留,例如用户设置的帐户、他或她的首选项等等。这些设置将在应用程序启动时加载,例如来自图 block 、通过合约等。通常,只要状态发生变化,就会保存该状态。
其次,如果应用程序被系统挂起然后终止,然后由用户再次切换(平铺或向左滑动等),我们要求应用程序保留其始终在运行且没有运行的感知。没有被关闭。对于这种情况,应用程序需要保存更多临时状态,例如导航堆栈、未提交的表单数据、当前平移位置等,这样,如果在终止后重新启动,它可以重新加载此状态并像之前一样显示。挂起事件是指您确保保存此类状态,尽管通常在其更改时保存它很方便。
所有这些状态都可以归类为“应用程序数据”,但我更喜欢将“应用程序数据”用于第一个(持久)状态,将“ session 数据”或“ session 状态”用于第二个(短暂)状态。我在//build 上发表的名为“国家的故事”的演讲中使用了这些术语(请参阅 here for 2013 talk,这是 2012 年的演讲,略有修改)。
除了正确识别该术语之外,这实际上是为您的应用程序定义有状态体验的问题,然后使用应用程序数据(和/或 WinJS)API 随时保存/加载您需要的任何状态。你怎么调用它是完全无关紧要的,因为它最终都存储在同一个地方。主要区别在于您何时加载或不重新加载它。
关于javascript - Windows 8.1 应用程序中应用程序数据和 session 数据之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19285979/