对于网络来说,什么样的状态比无国籍更好?

Adr*_*ong 13 state web-applications

我一直主张无状态网络,但想知道有状态网络的拥护者在说什么.

你是否有任何有状态比无国籍更合适的情况?

RMo*_*sey 8

我们的项目使用Wicket Web框架,允许有状态或无状态的交互.有状态页面有许多优点:

  • 在wicket中使用有状态页面可以更轻松地使用wicket的AJAX框架执行部分页面更新
  • 有状态是一种更"直观"的编程模型.例如,在wicket页面类中,我可以在服务器端声明一个私有成员字段,在加载页面时设置它,并在每次AJAX请求到达页面以执行某些更新时再次访问它.
  • Wicket通过在处理请求时同步用户会话对象来防止Web层中的大多数常见并发问题.
  • 在服务器端存储状态有时可以提高性能; 例如,在首次实例化页面时,只能加载一个构造但必须可用于页面的对象,该对象只能加载一次.

在有状态应用程序中可能执行的任何操作也可以实现为无状态 - 您只需将状态存储在客户端上,并在每个请求上提交所有相关的状态信息.

链接到检票口:http://wicket.apache.org/


sam*_*moz 4

使用状态通常会使程序员的工作变得更容易。

然而,状态也会引入各种并发问题,而这些问题在无状态情况下根本不存在。

这本质上是函数式编程和命令式编程之间的争论。

  • 但这是一个数据库问题;这与您是否在 Web 应用程序中存储状态无关。符合 ACID 的数据库(即所有关系数据库)就是为了处理此类问题而编写的。 (6认同)