最近Web2.0とか、Ajax君とても騒々しい。
MSにいた時からMsXmlはあんまりやおなじみだったことだし、あまり事新しくなかったが、
最近Googleで披露している新しいUser Experienceの(ActiveXなくても十分interactiveに作成されたGoogleマップやGmail)を見ると、MSは、同じことを持っても本当に見る価値のない利用するということを感じる。
(しかもXmlHttpRequestはMSがどのように初期から標準化し、リードして、マーケティングにもどれだけウᆰオ食べたか。 - これからもこのように開発すべきだと...)
いざ主人は別にあるようだ。
ジャプソリ止め、
今日ふとNASAが提供するAstronomy Picture of the Day(今日の天体写真)のページをつけたかった。
幸運にも誰かがRSSで提供することも分かった。 これを利用する
XmlHttpRequestでapod.rssを取得し、
DOMオブジェクト戻り堂このことは、
必要なElement万引き出してページを完成させ...
false ; var isIE = false;
var req;
url ) { function loadXMLDoc(url){
/ / branch for native XMLHttpRequest object
window. XMLHttpRequest ) { if(window. XMLHttpRequest){
XMLHttpRequest ( ) ; req = new XMLHttpRequest();
processReqChange ; req。onreadystatechange = processReqChange;
"GET" , url , true ) ; req。open( "GET"、url、true);
null ) ; req。send(null);
/ / branch for IE / Windows ActiveX version
( window. ActiveXObject ) { } else if(window. ActiveXObject){
; isIE = true;
ActiveXObject ( "Microsoft.XMLHTTP" ) ; req = new ActiveXObject( "Microsoft.XMLHTTP");
req ) { if(req){
processReqChange ; req。onreadystatechange = processReqChange;
"GET" , url , true ) ; req。open( "GET"、url、true);
; req。send();
}
}
}
function processReqChange(){
/ / only if req shows "loaded"
req. readyState == 4 ) { if(req. readyState == 4){
/ / only if "OK"
req. status == 200 ) { if(req. status == 200){
/ / req.responseXMLを持って、目的のページを構成する
{ } else {
"There was a problem retrieving the XML data: \n " + alert( "There was a problem retrieving the XML data:\ n" +
; req。statusText);
}
}
}
このソースは、 developer.apple.comから参照し、
以前には当然new ActiveXObject( "Microsoft.XMLHTTP");
のみを使用したが、いつのまにか、Safariや、FirefoxがXmlHttpRequestオブジェクトを内蔵することになり、最近脱Active X雰囲気なので(IE 7.0では、MSもXMLHttpRequestを内蔵する計画だなんて)、MSXMLだけを考慮したコーディングは避けなければならない。
processReqChange ; req。onreadystatechange = processReqChange;
でXMLHttpRequestのonreadystatechange状態の時、Callback関数でprocessReqChange関数が非同期的に処理するようにしている部分が見えるかい、< - これが一番最初からヨランヒ言っていたアヤックスの実体アニムガム。
アヤックスとは何かまだ正確な定義はないが
グカイコ大まかclient段XMLHttpRequestで非同期的にソボラン通信しながら、ユーザーにもっとinteractiveな環境を提供してハムンアヤックスはないか??
結局は断念した... 一度IEでSP2以降に血になったセキュリティの雰囲気にActiveX警告ウィンドウが浮かんで、OSに応じて、ブラウザに応じて異なる結果を見せて サーバーで処理することにした。 クライアントCPUちょっとこっそり使ってみようと思いました.... で も....