spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / experts / javascript / column105


Web Services, Part X: Consuming the StockQuote

Vice President of Risk Technology - READY TO HIRE! (NYC)
Next Step Systems
US-NY-New York

Justtechjobs.com Post A Job | Post A Resume
Developer News
News Flash: Adobe Has iPhone Workaround
Adobe's Flash 10.1 Goes Mobile (Minus iPhone)
A Salute to Visionary CEOs


Handling the Response

The onWSresult() function handles the response coming from the Web service. We defined the ONRESULT event handler in the DIV element to which we attached the webservice behavior (see Page 2):

<DIV ID="service" STYLE="behavior:url(webservice.htc)" 
  ONRESULT="onWSresult()"></DIV>

We first check that the call to the Web service was successful. Failure is detected by checking two conditions. The first condition is that event.result.error is a non-zero number (true). The other condition is that the ID returned inside the response (event.result.id) is the same as the ID returned by callService() at the time of the request (iCallID). When the call to the Web service is not successful, we print an error message, including three properties of the errorDetail object: code, string, and raw. Their aim is to give the user as much information as possible for understanding where the problem is.

When the call to the Web service is successful, we need to reformat the response to an easy-to-read table. We first create an ActiveX control:

var xmldoc=new ActiveXObject("MSXML2.DOMDocument.3.0");

We then set the asynchronous mode to false, requesting the XML file loading to finish before continuing on:

xmldoc.async=false;

We load the XML file:

xmldoc.loadXML(event.result.value);

You can see what this XML file looks like on Page 5. We then create another ActiveX control, xsldoc, into which we load the transformation specification stock.xsl:

var xsldoc=new ActiveXObject("MSXML2.DOMDocument.3.0");
xsldoc.async=false;
xsldoc.load("./stock.xsl");

We transform the quotes DOMDocument object (xmldoc) with the transformation DOMDocument object (xsldoc), and put the result in the res DIV (see callstockquote.html):

res.innerHTML=xmldoc.transformNode(xsldoc);

As far as error checking is concerned, there is the possibility that the response is successful, but the returned ID does not match the request ID (iCallID). In this case we give a message:

alert("Something else fired the event!");

Here is the full listing of the onWSresult() function:

function onWSresult() {
  if((event.result.error)&&(iCallID==event.result.id)) {
    res.innerText  = event.result.errorDetail.code;
    res.innerText+="\n"+ event.result.errorDetail.string;
    res.innerText+= "\n"+event.result.errorDetail.raw;
  } else if ((!event.result.error) && (iCallID == event.result.id)) {
           var xmldoc=new ActiveXObject("MSXML2.DOMDocument.3.0");
           xmldoc.async=false;
           xmldoc.loadXML(event.result.value);
           var xsldoc=new ActiveXObject("MSXML2.DOMDocument.3.0");
           xsldoc.async=false;
           xsldoc.load("./stock.xsl");
           res.innerHTML=xmldoc.transformNode(xsldoc);
         } else {
             alert("Something else fired the event!");
           }
}


Next: How to interpret the XML response

http://www.internet.com

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs

webref The latest from WebReference.com Browse >
Building a Banking Application Home Page with OOP · Mixing Scripting Languages · Review: phpFox, a Social Networking CMS with all the Bells and Whistles
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Enterprise 2.0: Social Networking in the Cloud · BroadSoft Marketplace Hastens Pace of Telephony Innovation · Review: HTC Hero for Sprint


Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: March 11, 2002
Revised: March 11, 2002

URL: http://www.webreference.com/js/column105/4.html