Wicket:存储 UI 设置的最佳做法?

Wicket: best practice to store UI settings?

我正在开发一个富互联网应用程序,它是使用 Wicket 和许多精美的 Wicket-JS 集成构建的。

我现在想要存储一些用户设置;例如我有一个 TabbedPanel。如果用户返回到包含 TabbedPanel 的页面,我希望能够 return 用户到他最近使用的选项卡。

存储这些用户设置的 Wicket 方式是什么?我不喜欢将它们存储在服务器上,而是存储在客户端上..

Wicket 中没有任何东西可以自动为您完成此操作。

一种方法是将设置放在 Cookie 中(CookieUtils 会在这里为您提供一些帮助)。 另一种方法是将设置存储在浏览器的存储中(localStorage 或 sessionStorage)。

使用 cookie 的好处是无需任何额外请求即可在服务器端使用设置,因此您可以在第一个页面呈现时呈现带有预选选项卡的 TabbedPanel。

如果您决定使用存储,那么您将不得不编写一些 JavaScript 将从第一个选项卡切换到第 load/domready 页上的已保存选项卡。但这种方式的用户体验不会是最好的,因为用户会看到选项卡内容如何变化。

我认为您需要使用 cookie,或者作为替代方案,您可以将用户设置存储到会话中。但在后一种情况下,当会话到期或用户注销时,用户设置将丢失。 组件 ModalWindow 使用 cookie 来存储类似的数据,例如 window 尺寸或记住 window 位置 .