WEB开发网
开发学院软件开发Java 轻量级开发的成功秘诀,第 9 部分: 基于 Continua... 阅读

轻量级开发的成功秘诀,第 9 部分: 基于 Continuation 的框架

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 新请求非常简单:只需启动一个新的 Web 应用程序即可,也可以使用在产生用户请求时存储的 ID 从字典中加载 continuation,轻量级开发的成功秘诀,第 9 部分: 基于 Continuation 的框架(4),这可看作考虑问题的角度方面的一次飞跃,通过传统方式,同样,线程处理也变得更为

新请求非常简单:只需启动一个新的 Web 应用程序即可。也可以使用在产生用户请求时存储的 ID 从字典中加载 continuation。

这可看作考虑问题的角度方面的一次飞跃。通过传统方式,是从有许多独立请求的浏览器的角度思考问题。而通过 continuation 方式,是将所有一切看做一个大型应用程序,有一些回调用户的调用。迄今为止,本文的介绍或许还很难使您的脑筋转过弯儿来,但这没有关系。最重要的是使用模型。下面给出一个购物车的基本形式:


清单 5. 购物车
def checkout(cart) 
 items=cart.items 
 shipping_address=get_shipping_address() 
 billing_address=get_billing_address if billing_address.is_separate_address() 
 credit_card_info=get_credit_card_info() 
 process_checkout(items, shipping_address, billing_address, credit_card_info) 
end 

虽然各个 get 调用都返回到用户,但不必保存状态,也不必在控制返回时恢复状态。由框架捕获的 continuation 将为您处理这些问题。

continuation 的优点

您一定可以马上想到 continuation 的主要优点。不必在每次返回用户以获取更多信息时都保存和加载状态。这一特点带来的好处简直难以估量,如果需要建立操作流程复杂的 Web 站点,此类服务器可帮助您节省大量时间。编写和维护代码也更加容易。

我感到非常震惊,Java 技术中几乎所有先进的 Web 框架都无法很好地处理 Back 按钮。有了 continuation 之后,用户不仅仅可以返回去浏览之前的一页,更可以查看浏览器历史中的任意页面。不必自行构建支持功能,因为 Web 服务器拥有该时间点的完整调用堆栈。Back 按钮可以无缝地工作。如果需要在任意点禁用 Back 按钮,也丝毫不会遇到什么困难。只需将用户过去的 continuation 从 continuation 字典中清除即可。同样,线程处理也变得更为容易,因为各个 continuation 都有自己的私有数据集。

上一页  1 2 3 4 5  下一页

Tags:轻量级 开发 成功

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接