えーとですね、「ブラウザでミニマムXML」シリーズをはじめると言いながら、その後、なんやかやと準備をしたりしています。「さっさとはじめんかい」と言われそうですが、僕としては:
DOM APIは作りかけですが、まー、動くには動く(昨日の話)。で、XMLHttp、相当にイイカゲンですが、とりあえず作りました。イイカゲンゆえに非常に小さい。
これは、ブラウザの挙動を真似する気は全然なくて、実はJSANのモジュールシステムを動かせればいいと思って仕様を決めたものです。(JSANに関しては、brazilさんのこの記事が手っ取り早いです。)
JSAN.jsのなかに次のコードがあります。
this._req.open("GET", url, false);
try {
this._req.send(null);
if (this._req.status == 200 || this._req.status == 0)
return this._req.responseText;
} catch (e) {
JSAN._handleError("File not found: " + url);
return null;
};
ここで、this._req がXMLHttpリクエスタ。これを見ると、次のことができればいいみたい。
- open("GET", url, false) が動く。
- send(null) が動く。
- 読み込みに成功したら、statusに200か0をセットする。
- それと、responseTextに読んだ内容をセットする。
詳しいことは調べずに、id:nazokingさんのnazono/ajax.jsを参考に書きました。と、それだけです。(なお、JSAN.jsをRhino上で動かすには、JSAN.jsにわずかに手を入れる必要がありそう。)