假设我有一个 Web 应用程序,其实现类似于一组向导页面来编辑一个复杂的对象。在用户单击“完成”按钮之前,对象不会保存到后端系统(要求),因此同时我必须将有关对象的全部信息保持在某种会话状态.
此外,某些向导页面必须显示包含大量项目的组合框和列表框。这些项目是使用 Web 服务从后端系统获取的。
巧合的是,向导允许用户自由地从一个向导页面跳转到任何其他页面(使用表单顶部的选项卡链接),因此这不是简单的“下一个,下一个...完成”的事情。
附加限制:Web 应用程序在 Web 场上运行,客户厌倦了使用服务器端会话状态。在最好的情况下,他们希望将会话状态的大小保持在最小(他们过去曾遇到过这个问题)。
所以这里基本上有两个问题:
- 如何/在哪里保存用户在向导中输入的数据?
- 是否缓存从后端接收的组合/列表项,如果是,在哪里?
我正在考虑的选项:
将对象存储在类似 WebForms 的ViewState 中(通过将其序列化到 HTML 页面中)。这也将包括组合框项目。显然,HTML 页面变得非常大可能会出现问题,因此 Web 应用程序会很慢。
将其存储到服务器端会话状态中,无论客户的意愿如何,也不知道性能将如何受到影响,直到在实际的 Web 场(项目后期)上进行测试。
我无法在两者之间做出决定。或者还有其他选择吗?