Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

XMLHTTPRequest おもろい! という話

Feed2JS あるいは XML HTTP Request で遊ぶ」にて、遅ればせながら XMLHttpRequest object であれこれやってみて、まぁちょっとしたものですがその威力に感心していたところなのですが、"XML.com: Very Dynamic Web Interfaces" にて示されている、バックエンドから返ってきた XML を DOM で操作する例を目の当たりにすると「これはすげぇぇぇぇぇ!」と激しくいまさらながらびびりました。引用箇所のコード、色分けがおかしくなってますがまぁ気にしないでください……。

<?xml version="1.0" encoding="UTF-8" 
standalone="yes"?>
<response>
    <method>checkName</method>
    <result>1</result>
</response>

Parsing such a simple response should be no problem at all.

function processReqChange() 
{
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
        response    = req.responseXML.documentElement;

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

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

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

XML.com: Very Dynamic Web Interfaces

これ、例としてどうなのかっていうとアレなのかもしれませんが、まぁそりゃ XMLHTTPRequest とかいうんだからこういう用途に使うんだろうなぁということはわかるものの、実際に例を見ると「おー!」という感じ。Google MapsLink to this page で示される URL に output=xml をくっつけるとバックエンドの XML データが表示されるよという話しが "Jon Udell: Google Maps is a web of linked XML documents" でされてて、その辺も上記の話に関係してくるのかな、面白いなと思いました。ちなみにいま output=xml つけた URL をリクエストしてみたら、XML データは見えなくなってしまったっぽい?

と思って output=xml のネタ元エントリを見返したら、こんな記述が(w

Update: The party's over, at least for now. The "output=xml" option is disabled, though you'll find the same slug of XML embedded inside the JavaScript responses.

Jon Udell: Google Maps is a web of linked XML documents

でもまぁ、やはり面白いことには変わりないので、これからもその辺の動向をヲチしていきたいです。