哪种 proxy/store 用于用户首选项和会话变量?

What kind of proxy/store are to be used for user preferences and session variables?

我使用 ExtJS 的 gpl 版本 5.1.1,没有其他库或框架(没有 ASP...)。


我在商店中使用 LocalStorage proxy 来 store/save 用户偏好。我调用 "user preferences" 默认过滤器值和其他显示选项。我使用 LocalStorage,因为用户大多使用同一台 PC,并且他们的偏好可以存储在本地。
我不打算将这些数据保存到服务器数据库,但我可以。


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

This proxy simply uses a local variable for data storage/retrieval, so its contents are lost on every page refresh.

这对我来说很好。


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

Note that session storage is different to local storage (see Ext.data.proxy.LocalStorage) - if a browser session is ended (e.g. by closing the browser) then all data in a SessionStorageProxy are lost.

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


我想知道我是否使用正确的原则来存储用户偏好,或者我是否应该使用其他方式。
内存代理和SessionStorage之间的"best"解决方案是什么?

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

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

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