在下列情形下,Ajax技术很有用处:
门户中使用了一个或多个基于applet的portlet。例子:参见前面内容中描述的场景。 portlet需要定期刷新其数据或重绘其内容。
例子:一个带有股票价值表的可执行面板,这些值每分钟都要更新。 使用Portlet间通信(Inter- Communication,IPC)而不能刷新整个Web页面。
例子:一个列出股票名称的portlet需要更新另一个用于简要描述这些股票的当前状态(比如股票的当前价格、最高价格和最低价格)的portlet。 页面包含大量通常为静态的数据,这样页面操作只需要置换少量数据。
例子:Google地图。 一个portlet需要基于在此portlet中的其他地方所做的选择来检索一个有限的数据集。
例子:一个表单有3个组合框:State、City和ZIP。当用户选择一个州时,该州所有的城市名称都将出现在City组合框中。然后,用户从City组合框中选择一个城市,接着ZIP组合框中就会显示该城市所有有效的邮政编码。 示例架构
Ajax技术的核心是Web浏览器对一些负责提供信息的Web服务的调用。如何为该解决方案设计架构呢?有3种值得考虑的架构。第一种架构使用Web浏览器作为集成点,出于随之而来的安全考虑和浏览器方面的问题,该架构存在问题。第二种解决方案使用代理来获取分布的资源,这消除了安全问题,但是添加了一个单点故障。第三种架构使用企业服务总线(enterprise service bus,ESB)来消除单点故障,并为Web服务和Ajax技术的蓬勃发展提供了最适宜的环境。
以浏览器为中心在以浏览器为中心的架构中,Web浏览器成为联系远程系统的中心点,如图1所示。数据从各个远程系统中获得,然后在浏览器处的JavaScript中进行整理和排序。

图 1.以浏览器为中心的架构
这种架构是最自然的设计,它具有多处设计缺陷:
JavaScript是一种糟糕的集成语言/环境。Java在各个方面都要比它好得多。 浏览器必须通过每个系统的身份验证,而且可能使用不同的方法。 缓存静态信息的能力很差,这会导致整个系统出现很长的延迟,这首先就失去了使用Ajax方法的意义! 代理服务如图2所示,代理服务消除了第一种架构的所有缺陷,但是它也有自己的不足之处。它导致出现了一个系统单点故障。当然,Web服务器可以作为带有硬件负载平衡器的集群的一部分。这无疑可以解决这个问题。