在请求或应用程序范围内存储总步数?

Store Total Steps count in Request or Application scope?

我正在创建一个带分页的多步骤表单,它将根据您所在的步骤显示 NextPrevious 按钮。为了正确显示按钮,我需要将总步数存储在某个变量中。

我是否将其存储在请求范围中,例如REQUEST.TotalSteps = 5 或应用范围,例如APPLICATION.TotalSteps = 5?步骤的数量很少会改变,所以我认为 Application 范围更适合,但我想尽量减少 RAM 的使用,因为我在 SESSION 范围中存储了很多东西。

理想的选择是什么?

取决于您将如何真正使用它,您使用的是什么框架,您如何构建您的应用程序等等。您只需要在需要它的请求期间内存中的值,所以 TBH 我只是把它放在变量范围内,确保为需要它的请求加载设置该变量的代码。

您不想将它放在会话中,因为它不是特定于访问者的值,也与会话没有任何相关性:它只是那种形式。

同样,它不属于应用程序范围(好吧:有警告,但考虑到您向我们提供的有关您如何构建应用程序的详细信息,我们假设是这种情况) 因为 - 再次 - 这不是整个应用程序需要的东西;只是真正感兴趣的页面有多少页。

如果您能向我们提供有关您的体系结构的更多信息,我可能会微调这个答案,但根据所提供的信息:这几乎就是您需要处理它的方式,所有条件都相同。

会话范围用于存储特定用户的信息。应用程序范围用于存储整个应用程序可用的信息。请求范围在请求过程中存储信息。您需要 SESSION 范围。