主页 > 知识库 > 网页基础 > Javascript/Ajax >
栏目列表

结合使用Ajax和WebSphere Portal

来源:中国IT实验室 作者:佚名 发表于:2012-12-24 14:28  点击:
引言 本文向您介绍将 Ajax 集成到门户应用程序的方法。因为已经有了几篇对 Ajax 进行一般性介绍的文章,所以我们假设您了解 Ajax 的基础知识;也就是说,您已经知道了什么是 Ajax、它的名称的由来、它并不是一项新的技术这一事实,以及 Google 如何将此技术带
引言    本文向您介绍将 Ajax 集成到门户应用程序的方法。因为已经有了几篇对 Ajax 进行一般性介绍的文章,所以我们假设您了解 Ajax 的基础知识;也就是说,您已经知道了什么是 Ajax、它的名称的由来、它并不是一项新的技术这一事实,以及 Google 如何将此技术带入全球每个经理和技术专家的思维模式。我们的目的是向您提供有用的信息,这些信息与在门户应用程序中使用 Ajax 相关,所以当 CTO 的办公室里的人员询问您的门户应用程序是否启用了 Ajax 时,您可以理直气壮地说:“当然!”。
    所以,如果您已决定将 Ajax 引入门户,则本文所讨论的内容非常值得您关注。尽管本文侧重介绍的是门户应用程序,但是这些技巧通常适用于大多数复杂应用程序。本文还为您准备了后续教程,在此教程中,我们将详细介绍 Ajax Portlet 应用程序的创建。
    在我们回到即将开始讨论的主题之前,先简要说明以下内容:您看到或读到的有关 Ajax 的内容所介绍的大部分不是真正的 Ajax;而是 Dynamic HTML 或 DHTML。正确意义的 Ajax 由称为 XMLHttpRequest 的单个 JavaScript 对象组成。该类为服务器和产生的响应提供后台通信通道。承担所有其他任务(包括拖放、DOM 更新、创建样式和各人喜欢做的所有其他事情)的是 DHTML。
    为什么 Ajax 和 WebSphere Portal 可以很好地配合?
    门户环境中开销最大的操作之一是刷新页面。当用户在页面上单击链接或进行一些其他操作时,门户会处理页面上目标 Portlet 的 actionPerformed() 方法和每个 Portlet 的 doView() 方法。然后,聚合结果,并将整个 HTML 文档向下发送到浏览器。
    尽管缓存可以减少大量的开销,但是仍有许多其他问题。您可以使用 Ajax 在后台处理许多用户交互事件,然后更新页面的各个部分,而无需完整的门户刷新周期。此技术通过增加对单个操作的响应大大改进了最终用户体验,同时也显着提 高了应用程序的总体性能。在某些环境中,使用 Ajax 可以使应用程序的总体体系结构更清晰。使用二级 Ajax 控制器(如 Servlet 或 Web 服务)可以进行更强大的模型代码分离。
    将整个 Ajax 控制器设计应用于应用程序时,您应该使用 Ajax 控制器处理所有基本用户输入操作和分段显示更新。而仅将门户 actionPerformed() 方法用于页面级转换或处理主要状态更改。
    为什么 Ajax 和 WebSphere Portal 不能很好地配合?
    那么,为什么您不希望在您的富 Internet 应用程序中使用这一新颖的范例呢?所有的技术周刊都认为这是一个好方法,此外,您的上司也通知您使用它,因为它是“业务目标之一”。当然,我们不会叫您不要使用它,但是,我的确想让您知道一些潜在缺陷:
    使用多个控制器(例如 Portlet、Servlet 和 Web 服务)会增加应用程序的复杂性。
    使用 Ajax 强制客户端处理许多逻辑。
    JavaScript 很难调试,特别是在跨浏览器环境中更是如此。
    可访问性问题和移动设备会产生冗余代码。因为许多屏幕阅读器和其他辅助设备不支持 JavaScript/Ajax,所以您需要提供备选功能。
    您的应用程序可能不需要在页面切换之间进行额外的数据更新。
    综上所述,您可能确定 Ajax 不适合您,需要改读其他文章。稍等,这只是一个玩笑。朋友,请继续阅读!Ajax 太酷了,如果您不将其添加到自己的应用程序中,您肯定会感到遗憾。
    至少您应该慢慢接受它。找到一个可以使用小技巧的应用程序,并将 Ajax 的妙处添加到用户表单或向导中。一旦您入门并了解到做一点努力就可以获得一些有效的用户增强功能,您肯定会准备将一些奇妙的方法实际添加到自己的门户应用程序中。
    设计注意事项
    将 Ajax 添加到门户应用程序后,您就可以有效地将多个控制器添加到经典 MVC 模式。此决定对强制执行模型逻辑的清晰分离有潜在的好处。不足之处是增加了复杂性,并且不可避免地将控制器分成以下三个部分:
    Portlet
    Servlet 或 Web 服务

有帮助
(1)
100%
没帮助
(0)
0%