"xmlhttprequest(無料)タグ投稿記事"

Astronomy Picture of the Dayのページを追加

6 22、2006 / / alexken作成/ / 技術天文 / / 7 Comments

前の記事に続いてずっと....
すぐ下にAjaxが何とかXMLHttpRequestが何とかしたが、
ブラウザジョガン少しずつ異なる動作や、IEの場合はActiveX警告が浮かんでて、

サーバー上でレンダリングして下げることに変更....

コー​​ドも意外と簡単。

new DomDocument ; $ xml = new DomDocument;
load ( "http://www.jwz.org/cheesegrater/RSS/apod.rss" ) ; $ xml - > load( "http://www.jwz.org/cheesegrater/RSS/apod.rss");

new DomDocument ; $ xsl = new DomDocument;
load ( "apod.xsl" ) ; $ xsl - > load( "apod.xsl");

new xsltprocessor ; $ proc = new xsltprocessor;
importStyleSheet ( $xsl ) ; $ proc - > importStyleSheet($ xsl);
-> transformToXML ( $xml ) ; echo $ proc - > transformToXML($ xml);
apod.rssとapod.xslを読み取って
apos.rssをapod.xslを利用してレンダリングしてそのまま画面にプリョジュム。 先端

apod.xslファイル

xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" > <xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
/> <xsl:output method = "html" />

> <xsl:template match = "/rss/channel">
/> by NASA <xsl:value-of select = "pubDate" /> by NASA
<xsl:value-of select = "item / description"
disable-output-escaping = "yes" />
</ xsl:template>

</ xsl:stylesheet>

/ rss / item / descriptionの内容がescape処理されたhtmlのソースですが、それだけで処理すると、画面にhtmlソースが出力されます。
value-ofのdisable-output-escaping属性 "yes"にかけます。(これ知らなくてしばらくチャトアトウム)

私の最初Ajaxプログラム

6 21、2006 / / alexken作成/ / 技術天文 / / 3 Comments

最近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ちょっとこっそり使ってみようと思いました.... で ​​も....

ブログのカテゴリ

天体写真ギャラリー