ykzts.com

w3c-xmlhttprequest 1.1.0をリリースしました

著者: 山岸和利
更新: 編集履歴

w3c-xmlhttprequest 1.1.0をリリースしました。ソースコードはGitHubにございますので、よろしければご確認ください。またPull Requestは熱烈に歓迎いたします。

拙作、w3c-xmlhttprequestはNode向けに書かれたXMLHttpRequestの実装です。できる範囲でW3CによるXMLHttpRequestの仕様にそわせられるように書いてあります。直前のバージョンである1.0.0までではイベントハンドリングの扱いが粗雑なものとなっておりましたが今般のバージョンである1.1.0ではW3Cの仕様に比較的忠実なものにできたのではないかと思います。イベントハンドリングの動作を仕様に忠実にさせるためにDOM 4のイベント周りの実装を簡易的にではありますが、実施しておりますので、ソースコードの方も確認してもらえると、わたしの努力が身を結ばれたように感じられ、喜ばしく思います。

さて、w3c-xmlhttprequestの使いみちではありますが、ないのではないかと思います。書いている身としては楽しんで書いているものなのではありますが、NodeでHTTP通信を行う場合には、Nodeの標準添付ライブラリーであるhttpで事足りてしまう場合がほとんどです。w3c-xmlhttprequestではhttpでできる以上のことは実装されていませんし、またW3Cの仕様にある以上のことを実装する予定はないために、今後も実装される望みは薄くなっています。

ウェブブラウザー向けに書いたコードを流用することができるというのはありますが、ウェブブラウザー向けに書かれたコードではおそらくDOMを扱うコードが少なからず含まれているでしょうし、XMLHttpRequestだけが使えるようになったとしても、動作させるには手間が要るでしょう。なのでw3c-xmlhttprequestをプロダクトコードに対して使うことはおすすめいたしません。

ただわたしとしては自信を持って書いています。ソースコードを読んで忌憚のない意見や、Pull Requestをいただけますと、真重畳に存じます。何卒よろしくお願いいたします。

関連記事

表題の通りw3c-xmlhttprequest v3.0.0をリリースしました。細かなバグの修正や最新のXMLHttpRequestの仕様に追従させたりと様々な変更が含まれていますが一番大きな変更としてはECMAScript 2015からTypeScriptへの移行でしょう。

XMLHttpRequest Level 2のWorking DraftにはresponseTypeという属性があります。この属性に'json'という値を代入することにより、req.send()を実行したのちに、response属性にあたかもJSON.parse(req.responseText)としたかのようなobjectがいれられるようになります。readyState属性の値がXMLHttpRequest.DONE (4) になった段階でresponseTextをパースするようなコードを書けば良い話ではあるのですが、コードの短縮化簡潔化をはかれて多くの人はしあわせになれるのではないでしょうか。この記事を執筆している段階では当該仕様はWorking Draftであり、実装もまだFirefoxでしかおこなわれていないようです<ins datetime="2012-06-19T13:30:00+09:00"> (Opera 12.00以降でも対応しているそうです) </ins>が、とても便利につかえそうなものなので今後 多くの環境で実装されることをねがいたいものですね。