作为拼图的最后一块,将看到 Flex 如何将 Ajax 作为应用程序调用。为此,要编写一个可处理服务器端消息的通用 JavaScript 函数。将此方法命名为 handleServerMessageReceived(message)。此方获取来自服务器的 XML 代码,此方法对于消息的处理方式以应用程序为依据。清单 5 中的代码展示了 Flex 如何调用 JavaScript函数。这是 readHandler 方法的代码,该方法在接收到服务器 XML 消息时被调用。
清单 5. 使用 handleServerMessageReceived(message) 的 readhHandler 代码
publicfunctionreadHandler(e:DataEvent):void{
varmessage:XML=e.dataasXML;
ExternalIntece.call("handleServerMessageReceived",message);
}
就是这样!就是这样简单。已经创建了一个 XML 套接字连接。当来自服务器的数据送达时,可调用 Ajax 中的某些通用处理函数,处理这些消息。完整源代码可供下载(请参见下载部分)。
下面来看看 OpenLaszlo 如何实现相同的目标。
使用 OpenLaszlo 打开客户端套接字
由于 OpenLaszlo 应用程序以 Flash 和 DHTML 平台为目标,因而其 API 和脚本语言类似于 Flash 和JavaScript。这主要是为希望迁移到 OpenLaszlo(作为 RIA 的替代方案)的 Web 开发人员提供便利。
OpenLaszlo 提供了两种创建与后端之间的持久连接的方法。一种方法要使用 Lz(Laszlo 的缩写)标准库中提供的ConnectionManager API。但其文档明确说明了以下内容:
“警告:这项特性是临时的。此特性用于容量有限的环境,能够用于开发,但我们不推荐使用此特性进行部署(不包括低容量、非任务关键型的部署)。若对使用此版本的持久连接的应用程序的健壮性有任何问题,请直接咨询Laszlo Systems。”
或许目前这是一项实验技术,但在未来的 OpenLaszlo 版本中,它将得到证实。
第二种方法与 Flex 相似,您要手动打开 XML 套接字连接,等待 READ_DATA 事件发生。清单 6 展示了实现方法。
清单 6. 定义 XMLSocket 类
<classname="ClientSocket"extends="node">
<attributename="host">
<attributename="port">
<XMLSocketname=xml_socket>
<handlername="oninit">
connectthesockethere:
xml_socket.connect(host,port);
<handler>
<handlername=onDatareference=xml_socketargs=messageXML>
<![CDATA[
ExternalIntece.call(‘handleServerMessageReceived,messageXML);
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-38618-5.html
炒股也只是一项技能和职业而已
台湾人现在不信蒋介石