在asp.net页面上,术语“应用程序数据”是指所有用户共有的数据,而术语“会话数据”是指特定于给定用户会话的数据(并且在登录之间不存在) 。
但是,在讨论Windows 8应用程序生命周期时,定义似乎已更改。
对于Windows 8应用程序,术语“应用程序数据”似乎是指特定于给定用户的数据(并且确实存在于两次登录之间),而“会话数据”似乎是指特定于给定登录会话的数据。
对我来说,在线Microsoft教程在对“应用程序数据”和“会话数据”的分类中似乎有点模糊。再次(对我来说),“应用程序数据”就是您要在会话之间(或暂停终止的事件)之间保留的任何数据,而会话数据只是您不想在会话之间(或暂停-终止事件)
我的理解正确吗? “应用程序数据”和“会话数据”的定义是否仅仅是这些数据在会话之间的存储和检索方式的问题(因此,不是真正的数据决策,而是设计决策)?
谢谢。
最佳答案
暂时搁置术语,最好仅查看应用程序状态及其要求。
首先,有些设置和配置应在应用程序运行时始终保留,例如用户设置的帐户,他或她的首选项等。无论何时启动该应用程序(例如,从磁贴,通过合同等。通常,此状态在更改时都会保存。
其次,如果某个应用已暂停,然后又被系统终止,然后又被用户再次切换(平铺或向左滑动等),则我们要求应用保留以下感觉:它始终在运行并且尚未关闭下。对于这种情况,应用程序需要保存更多的临时状态,例如导航堆栈,未提交的表单数据,当前的平移位置等,这样,如果在终止后重新启动,则可以重新加载此状态并像以前一样显示。挂起事件是您确保已保存状态的时间,尽管通常在状态更改时可以方便地保存它。
所有这些状态都可以归为“应用程序数据”,但是我更喜欢将“应用程序数据”用于第一个(持久)状态,将“会话数据”或“会话状态”用于第二个(临时)状态。我在// build的演讲中使用了这些术语,称为“国家的故事”(请参见here for 2013 talk,这是对2012年的演讲进行了稍微修改的)。
除了正确地识别该术语外,这实际上是定义应用程序的状态体验,然后使用应用程序数据(和/或WinJS)API在任何时间保存/加载所需状态的问题。您所说的与它无关紧要,因为它们最终都存储在同一位置。主要区别在于何时加载或不重新加载。