用 Ajax 创建异步消息框架

日期: 2007-12-04 作者:J. Jeffrey Hanson 来源:TechTarget中国

  框架组件概览

  经过良好设计的面向服务的业务层可以帮助您将松散耦合的服务组成过程和复合应用程序。面向服务的架构(Service-Oriented Architecture,SOA)中的这种服务组合使您能够用不同环境中的服务构建应用程序和过程,而无需了解每种环境的细节。使用 SOA 可获得的益处依赖于使用一般、粗略的接口设计和实现的服务。

  在开发基于浏览器的 UI 时,Ajax 编程将为您提供强大的功能和很大的灵活性。将此 UI 功能与面向服务的业务层结合使用还将为您提供更大的灵活度。Ajax 编程本身十分适于进行异步请求和响应。在将 Ajax 的异步本性与基于异步的消息传递系统结合使用时,您可以构建基于浏览器的应用程序,这样做将使用户体验更近似于桌面应用程序,给用户一种更加实时的感受。

  Apache Geronimo 是一个模块化的符合 Java™ 2 Platform, Enterprise Edition (J2EE) 规范的应用服务器平台,它基于使用控制反转(Inversion of Control,IoC)的架构解耦组件和服务以构建企业级应用程序和服务。

  在本文中,您将了解如何使用基于消息的框架或总线处理来自客户机的异步业务请求,以便在多个基于 Ajax 的客户机与基于 Geronimo 的服务器之间进行交互。了解如何在浏览器与服务器之间跟踪基于 Ajax 的客户机请求。并了解如何通过目标业务服务的面向消息的服务总线在服务器端跟踪这些请求。

  Ajax 简介

  Ajax 是一个受基于 XML 的请求和响应服务器调用模型驱动的 UI 功能和概念的框架。这些概念本性上大都具有不定性,但是都根据约定经过标准化。这些概念在 Ajax 应用程序开发中大多以标准的形式出现,已成为主流 Web 浏览器的功能。
  
  Ajax UI 依赖于浏览器中的文档对象模型(Document Object Model,DOM)功能和 JavaScript 组件,这些功能和组件用于在任何指定时间解析和显示 Web 页面。很多(但不是所有)这类功能和组件都是由大多数主流 Web 浏览器共享的。这么多的内容掌握起来可能有些困难,因此本文仅讨论 DOM 和面向 Ajax 的 JavaScript 代码的最基础功能。

  几乎所有称得上是基于 Ajax 的应用程序都会创建称为 XMLHttpRequest 对象的组件。此 JavaScript 对象用于构造请求和在浏览器与服务器之间来回传输请求。清单 1 中的代码片段将创建可以在 Mozilla Firefox 浏览器或 Microsoft® Windows® Internet Explorer® 浏览器与服务器之间使用的 XMLHttpRequest 对象的实例。

  清单 1. 创建 XMLHttpRequest 对象

function getHTTPObject()
{
   var xmlhttp = null;
   var success = false;
  
   // List of MS XMLHTTP versions – newest first
   var MSXML_XMLHTTP_PROGIDS = new Array(
       ‘MSXML2.XMLHTTP.5.0’,
       ‘MSXML2.XMLHTTP.4.0’,
       ‘MSXML2.XMLHTTP.3.0’,
       ‘MSXML2.XMLHTTP’,
       ‘Microsoft.XMLHTTP’
   );

   for (var i = 0; i < MSXML_XMLHTTP_PROGIDS.length && !success; i++)
   {
      try
      {
         xmlhttp = new ActiveXObject(MSXML_XMLHTTP_PROGIDS[i]);
         success = true;
         return xmlhttp;
      }
      catch (e)
      {
         xmlhttp = false;
      }
   }

   if (!xmlhttp && typeof XMLHttpRequest != ‘undefined’)
   {
      try
      {
         xmlhttp = new XMLHttpRequest();
      }
      catch (e)
      {
         xmlhttp = false;
      }
   }

   return xmlhttp;
}
 

……

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐