gpt4 book ai didi

smalltalk - 延续是《Seaside》的一个关键特征吗?

转载 作者:行者123 更新时间:2023-12-02 19:33:13 27 4
gpt4 key购买 nike

我正在尝试加快使用 Smalltalk/Seaside 的速度。根据Wikipedia ,“Seaside是一个基于延续的Web应用程序框架”。我有 Java 背景,对延续不太熟悉。

经过一番阅读后,我了解到延续用于维护状态,从而保存进程的快照并可以稍后恢复(类似于将 Windows 置于休眠模式)。

这与 Seaside 与“后退”按钮的使用最相关?使用代码块和“回调”与使用延续不同?

我还试图评估当前在 Seaside 中实际使用延续的重要性。我很困惑,因为许多在线引用 Seaside 都提到延续是一个关键和定义功能。但是,我还发现许多文章提到 Seaside 中延续的使用并不常用,而且实际上并不是一个关键功能。

非常感谢您提供任何有用的意见,让我明白这一点!

最佳答案

最初,Seaside 使用延续来模拟页面之间的流程并启用后退按钮。对于 Seaside 3.0 来说,情况不再如此:延续完全是可选的。如果您想使用call: and answer: functionality您可以加载Seaside-Flow包。否则,Seaside 应用程序将免费继续。

无论如何,作为 Web 应用程序开发人员,您永远不会看到(或看到)延续。它们是 Seaside Web 框架中很好封装的实现细节。

更新:在 Seaside 3.0 中,状态是通过为每个请求存储一个特殊对象来管理的。该对象会记住该时间点的应用程序状态。如果用户回来,对象知道如何恢复并恢复到之前的状态。在这方面,该对象的行为类似于延续(该类称为 WASessionContinuation ),但其实现非常不同。它不会对执行堆栈进行快照,而只会对应用程序状态的特定部分进行快照(这就是消耗较少内存的原因)。此外,它不会像延续那样跳转到代码中的某个位置,而是将必要的恢复逻辑实现为模板方法 WASessionContinuation>>#handleRequest 的一部分(这就是它更快的原因)。

关于smalltalk - 延续是《Seaside》的一个关键特征吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8279339/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com