User interface 如何维护web应用程序中的状态-因为HTTP是无状态的

User interface 如何维护web应用程序中的状态-因为HTTP是无状态的,user-interface,web-applications,grails,web,User Interface,Web Applications,Grails,Web,我刚开始构建web应用程序,刚刚开始学习和设置Grails。我计划建立一个应用程序,有4至5页的流量。由于HTTP是一种无状态协议,通常如何维护页面之间的状态。我很好奇这里的公认标准是什么,我应该创建会话范围的对象并在页面之间使用它们,还是在页面之间不断传递值(如果页面上有大量项目,则不确定是否有效)。或者我应该使用一个包含多个div的页面,并根据用户的点击显示/隐藏,而不是使用4到5个页面? 我认为在Grails中使用域对象会有所帮助,但我没有DB支持UI,只有一些Web服务可以执行UI操作,

我刚开始构建web应用程序,刚刚开始学习和设置Grails。我计划建立一个应用程序,有4至5页的流量。由于HTTP是一种无状态协议,通常如何维护页面之间的状态。我很好奇这里的公认标准是什么,我应该创建会话范围的对象并在页面之间使用它们,还是在页面之间不断传递值(如果页面上有大量项目,则不确定是否有效)。或者我应该使用一个包含多个div的页面,并根据用户的点击显示/隐藏,而不是使用4到5个页面? 我认为在Grails中使用域对象会有所帮助,但我没有DB支持UI,只有一些Web服务可以执行UI操作,所以我不能使用域对象。
特定于Grails的解决方案会很好,但也希望了解在web开发中如何处理这一问题。

如果不使用DB,您可以使用以下几个选项:

  • 使用POST/GET变量在页面之间传递信息
  • 使用会话存储信息
  • 使用cookies存储信息

  • 使用POST/GET通常是最好的,如果你只是有一个页面与另一个页面“对话”(例如提交表单)。如果您有一组数据将由多个页面共享,那么最好的方法可能是将它们放在会话中。如果您需要在用户离开您的站点并稍后返回后保留这些值,那么您可能需要使用cookies。

    您可能需要查看Grails中的(Spring WebFlow)。我发现它在类似向导或购物车的应用程序中很有用,在这些应用程序中,您希望在一组页面(即:第1页、第2页……第4页)之间保留数据,然后在最后将数据提交到某个地方等。

    是的,我不想使用DB来存储中间的东西。我在第1页上有大约50个字段,在我从第4页提交之前,这些字段需要在内存中。所以我想我应该使用会话存储。我将检查grails是如何支持这一点的。也许你指的是HTTP而不是HTML。HTTP是通常用于“获取”HTML的传输协议。HTML只是一种标记语言。