WEB开发网
开发学院网页设计JavaScript 用JavaScript与WebService实现网页部分数据XML传送... 阅读

用JavaScript与WebService实现网页部分数据XML传送

 2010-09-14 13:43:06 来源:WEB开发网   
核心提示: 二、异步调用WebService,解析XML声明两个变量,用JavaScript与WebService实现网页部分数据XML传送(2),用来存储ActiveX对象:var objXMLData; //存储要解析的 XML 文档var objXMLStyle; //存储 XSLT STYLE

二、异步调用WebService,解析XML

声明两个变量,用来存储ActiveX对象:

var objXMLData;       //存储要解析的 XML 文档
var objXMLStyle;      //存储 XSLT STYLE

通过JavaScript调用WebService的代码如下:

function doSearch()
{
  var iCallID;
 
 
 
  iCallID = htcWService.Garkcx.callService(dataArrived, "DoSearch", strUserGUID, strSearchMethod, strDataBaseName, strSearchCondition, encodeMethod);
}

因为是异步调用,所以当远程服务调用完成后会触发dataArrived方法。”DoSearch”后的内容是调用WebService所跟的参数。下面我们看看dataArrived代码:

function dataArrived(objResult)
{
  if(objResult.error)
  {
    var strErrorCode = objResult.errorDetail.code;
    var strErrorMsg = objResult.errorDetail.string;
    var strErrorRaw = objResult.errorDetail.raw;
   
    document.all('ErrorMessage').innerHTML = '<b>* 错误 -</b> 无法找到指定身份证号的用户。<br />' + strErrorMsg;
  }
  else
  {
    try
    {
      objXMLData = new ActiveXObject('MSXML2.FreeThreadedDOMDocument');
    }
    catch(e){}
   
    // 判断解析器对象是否可以使用
    if (objXMLData == null)
    {
      document.all('ErrorMessage').innerHTML = '* <b>错误: 不正确的 XML 解析器版本.</b><br />';
      return;
    }
   
   
    //此处有一些解码的代码,省略
   
    strResult = objResult.value;

    // 事件不断被触发,检测XML数据是否装载完成
    objXMLData.onreadystatechange = dataLoaded;
   
    objXMLData.validateOnParse = true;
    objXMLData.async = true;
   
    // 装载从 Web Service 返回的结果
    objXMLData.loadXML(strResult);
  }
}

function dataLoaded()
{
  // 异步访问,如果 XML 解析器的 readyState 属性为 4, 表示装载结束。
  if (objXMLData.readyState == 4)
  {
    if (objXMLData.parseError.errorCode != 0)
      // 装载过程出现错误
      document.all('ErrorMessage').innerHTML = '<b>* 错误</b> - 无法解析 XML 数据结果.';
    else
    {
      document.all('SearchResult').innerHTML = '';
      ApplyXslStyle();  // 应用 XSLT 样式
    }
  }
}

Tags:JavaScript WebService 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接