注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发AJAX → 文章内容

在BEA WEBLOGIC PORTAL中进行AJAX编程,第1部分

作者:佚名 来源:不详 发布时间:2007-12-10 22:48:17

  ESB消除了对ProxyServlet类(稍后将会介绍)的需求,因为代理服务更好地完成了同样的工作。 ESB支持监控和管理单个Web服务,同时无需在每个Web服务中增加额外的代码。这包括监控服务水平协议(SLA)和报告违反情况。 ESB可以保护Ajax代码不会被外部提供者修改。如果外部提供者以一种无需修改门户用户界面但需要修改Ajax调用代码的方式修改了WSDL,那么就有可能在ESB的代理服务中修改配置,而不用修改Ajax代码。为什么这样做比修改Ajax代码更好呢?我认为,在ESB中代理服务的配置中进行小的改动比起在JavaScript中对每个到相关服务的引用进行修改更不容易出错。此外,对于同样的信息(比如股票报价查询)还可以使用多个外部提供者,但是每个提供者具有不同的调用接口并返回XML。如果某个提供者出现故障或者只是为了进行负载平衡,使用多个提供者就很有利了。在ESB中可以轻松实现这一点,但是在JavaScript中这几乎是不可能的。

  在这里的例子中,我之所以使用了以浏览器为中心的架构和代理服务架构,是因为作为例子来说,它们比较简单,但是我希望能够使您相信,Ajax是体现ESB优点的非常不错的方式。

对门户使用的影响

  当在门户内采用Ajax编程方法时,出现了几个问题。这些问题中的大多数与门户的生命周期以及如何/何时挑选用户信息有关。具体来说,门户要使用诸如用户在哪里单击之类的信息来决定向其显示何种类型的相关信息。WebLogic Portal具有一种叫做campaign的特性,它允许门户设计人员基于用户个人信息指定对用户的有目的广告宣传。用户个人信息中包括用户的页面历史,即,用户过去点击过的页面。门户在页面刷新时收集这类信息,所以如果用户从未刷新页面,门户就无法(容易地)自动收集用户信息。

  考虑Ajax编程可能对门户产生的以下副作用:

不可跟踪性使campaign得不到有效使用(参见上面的内容)。 页面刷新重置了DOM树,所以当用户最终刷新页面时,所有对使用Ajax修改过的portlet的更新都会丢失。对portlet内容的修改将会丢失,还原为初始的页面状态。 JSP中的所有JavaScript都是整个页面共用的。考虑一个包含在每个portlet中的JavaScript片断。当呈现最终的HTML页面时,JavaScript片断将在包含它的每个portlet中重复使用。类似地,如果已经将两个portlet嵌入了JavaScript,而且每个portlet的脚本都有一个名为getData()的方法,那么最终的HTML页面将会有两个不同的getData()函数定义。调用该函数时很可能导致调用不正确的方法。如果有两个名为isOK()的变量,也会出现同样的情况。

  使用适当的编码风格可以防止这些问题的发生,比如给所有变量和函数取独有的名称,或者使用cookies来保存portlet中使用的当前数据。


更多内容请看PCdog.com--Ajax技术专题
上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页


  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved