Sign In/My Account | View Cart  
advertisement

Article:
 Very Dynamic Web Interfaces
Subject: I realize that I'm on XML.com, but....
Date: 2005-03-23 07:09:49
From: mdchaney

Please don't use XML for such a simple request. Actually, I'm not convinced that XML is the best method for sending any data to JavaScript. I do a lot of work with XMLHTTPRequest, and I simply use the standard JavaScript object literal and array literal notations.


Now, I know the above is a simple demonstration, but for a simple flag response you need to return only a 1 or 0. To keep with the example, though, you can return a JS object:


{ method: 'checkName', result: 1 };


Then, the function is simplified:
function processReqChange()
{
// only if req shows "complete"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
// ...processing statements go here...


--> eval('response = '+req.responseText);


eval(response.method + '(' + response.result + ');');
} else {
alert("There was a problem retrieving the XML data:\n" + req.statusText);
}
}
}


Obviously, for such a simple example there's little gain. But imagine trying to traverse an entire DOM tree for a large document. Using literals, you can create native JS objects and use the much simpler constructs such as "for/in" to manipulate the data. You can also directly address known data, as shown above.


Make the choice between this:


response.method


or this:


response.getElementsByTagName('method')[0].firstChild.data;


It also probably goes without saying, but the backend code is also greatly simplified by not having to create an XML document.


Previous Message Previous Message   Next Message Next Message


Titles Only Full Threads Newest First
  • I realize that I'm on XML.com, but....
    2005-04-05 17:31:50 emdee1 [Reply]

    > Please don't use XML for such a simple request. Actually, I'm not convinced that XML is the best method for sending any data to JavaScript. I do a lot of work with XMLHTTPRequest, and I simply use the standard JavaScript object literal and array literal notations.


    That's great... until you want to reuse the logic for something that isn't JavaScript on the otherside. This is exactly the type of thing that XML is for.

  • I realize that I'm on XML.com, but....
    2005-03-29 22:32:16 w_laks [Reply]

    I got a question. How exactly do you return JS Objects in the response? What should be the document type. My server side php code is simply this:
    <?php
    echo "{ name: 'Lakshmi' }";
    ?>
    This works but Mozilla keeps spinning forever I guess because it still expects more content or something. IE does not spin and on Opera this does not work at all presumably for lack of a HttpRequest object.



Sponsored By: