2015-12-02 11 views
0

我使用extJS的gpl版本5.1.1,没有其他库或框架(没有ASP ...)。什么样的代理/存储将用于用户首选项和会话变量?


我在Store中使用LocalStorage proxy来存储/保存用户首选项。我称之为“用户首选项”默认的过滤器值和其他显示选项。我使用LocalStorage,因为用户大多使用同一台PC,他们的偏好可以存储在本地。
我不打算将这些数据保存到服务器数据库,但我可以。


我想用Memory proxy必须为其每次重新初始化用户登录会话变量。

该代理只是简单地用于数据存储/检索一个局部变量,所以它的内容是每页刷新丢失。

这对我来说很好。


我不使用SessionStorage proxy ...但我可以使用此代理会话变量。

注意,会话存储是本地存储(见Ext.data.proxy.LocalStorage)不同 - 如果浏览器会话结束时(例如,通过关闭浏览器),然后在SessionStorageProxy的所有数据都将丢失。

这也是一个解决方案。浏览器版本不是问题,它们与SessionStorage兼容。


我想知道如果我使用正确的原则来存储用户的偏好或如果我应该用另一种方式。
什么是内存代理和SessionStorage之间的“最佳”解决方案?

回答

1

内存代理将只保留该页面加载的设置。如果你离开页面,那么一切都将丢失。这不需要特定的浏览器,任何浏览器甚至可以使用IE6。即使用户登录到您的应用程序,当他们离开页面时,设置将会丢失,并且必须在下次访问时检索。

会话存储代理(使用HTML5的SessionStorage API)将保留浏览器会话的浏览器内存中的设置。您可以离开该页面并回到该页面,设置仍将保留在那里。浏览器关闭时,设置将会丢失。这需要符合HTML5的浏览器(IE10 +)。如果用户登录到您的应用程序,当他们离开页面但返回时,设置仍然是本地的(除非浏览器关闭)。

本地存储代理(使用HTML5的LocalStorage API)将永久保留设置,或者直到以编程方式清除或由用户手动清除。离开页面,关闭浏览器,当应用程序再次访问时,该设置仍然存在(除非通过代码或用户清除)。

+0

这对我来说很清楚。我的问题是:**是否正确**使用LocalStorage代理进行用户设置? ** **会话变量应该使用哪种代理**? – Michel

+0

决定是你的。 LocalStorage适用于长期设置。对于用户设置,我更喜欢SessionStorage,以便用户可以回到应用程序并将其保留在那里。这取决于您的登录信息,即使没有浏览器关闭,用户也必须登录每次应用程序访问?如果是这样的话,内存效果会更好,因为当页面离开时它会被转储。 –

相关问题