Buffola 与 xmlhttp
Buffola的javascript部分对xmlhttp进行了对象封装。
Web页面调用xmlhttp对象的remoteCall方法向服务器servlete发送dom请求,remoteCall中设置了回调函数作为参数,当服务器响应完成时,回调函数被触发;回调函数在web页的script中实现。
Xmlhttp有个方法,如: onreadystatechange ,当 readyState == ‘ 4’ 时表示有响应。
readyState == ‘ 200’ 时表示响应是没有问题的。在这个事件中,插入回调和其它事后处理函数。
服务器对xmlhttp发送的dom的响应:inputStream是xml文件流。Sevlet对其进行parse。Xml的格式是buffola定的。具体格式在xmlhttp对象Buffola中封装好了,使用者无需关心,只需在remoteCall中指定就行。
如: remoteCall(‘serviceName.divide’,[1,2], new function(){});
将组织成
<xml>
<burlap:call>
<method>divide</method>
<double>1</double>
<double>2</double>
</burlap:call>
参数: serviceName.divide将被分成2部分,
其中serviceName被组织到url中,url已经指明了进行处理的servletName(jsp or html),serviceName指定该servlet调用哪个处理类进行处理, serviceName 是处理类的名称;divide是该处理类的一个方法,传入的参数是:1,2均为double型。
其中方法名divide及该方法的参数被组织到xml中。
参数: [2,3]是函数divide的输入参数;被组织到xml中。
参数:new function(){} web javascript实现的回调函数。 当remoteCall执行成功,并返回时,触发回调函数的执行。