Lift的状态成语是什么?

时间:2012-03-08 13:04:31

标签: scala lift

我读过REST。当我对Lift有一个概述时,似乎是Lift:

  1. 维护(Java EE应用程序)服务器中的状态和
  2. 需要群集环境中的服务器关联
  3. Lift的有状态的想法似乎与REST和亲属截然不同。 Lift的状态成语究竟是什么?为什么需要服务器亲和力?如果我们偏离一个固定的习语,它会成为一个雷区吗?


    在这个假设的同时编辑的电子表格中,它将如何发挥(并成为一种优势):

    1. 用户在一行中编辑单元格。当用户继续编辑(异步)时,编辑器会显示该单元格的“同步”,如果数据已与后备存储同步,则会删除该通知。
    2. 另一位用户正在开始编辑文档。第一个编辑得到通知。
    3. 第一个用户编辑了另一个人可见的行。另一个人知道哪些行被更改了。

    4. 更新: dave评论了服务器亲和力的确切原因:herehere。事实证明,FourSquare,非常多流量的网站正好使用这种方法。

1 个答案:

答案 0 :(得分:2)

这将在Lift in Action中讨论。有状态的主要原因是安全性:Lift在很大程度上依赖于内存状态的安全功能,例如页面控件上的功能映射GUID。此外,您会发现声称无状态并且除了纯REST之外的任何事情的框架实际上在成为有状态框架方面做得非常糟糕:通常涉及将状态转换为cookie或将其序列化为隐藏的表单字段。这两种技术都被流行的框架(Rails,.NET,Play等)使用。

此外,事实证明,将内容保存在内存中非常有用,因为这意味着每个请求都不必重新初始化数据库连接等内容。它还允许一些非常好的功能,如Lift的彗星支持。

希望这有帮助。