XMLHttpRequest Level 2

Firefox Nightly:: XMLHttpRequest の readyState 値 - hogehoge @teramako の続き、かな。
前のはいきなり枝葉に走ってしまったが、Bug 649133 ? Implement XHR2 responseType/response attributes によって、まだドラフトだけどXMLHttpRequest Level 2が実装されて来てますよ。

どういうことかというと、HTML5的何かがゴニョゴニョできるようになる。

  • xhr.responseType
  • xhr.response

という値が使用できる。

Mozillaの場合は、ベンダープレフィックスが付いて、

  • xhr.mozResponseType
  • xhr.mozResponse

だけど。ベンダープレフィックスは取り除かれました

んで、何が嬉しいの? というと。

var xhr = new XMLHttpRequest();
xhr.open("GET", url, false);
xhr.responseType = "blob";
xhr.send(null);

var file = xhr.response;
file instanceof File; // true
// ....

という感じの書き方ができる。

xhr.responseTypeに入れた文字列によって、xhr.responseの内容が変わってくる。

xhr.responseTypeに入れられるのは、

mozResponseType responseの値
"arraybuffer" ArrayBufferオブジェクト
"blob" FileAPIのFileオブジェクト
"document" Documentオブジェクト(xhr.responseXMLと同じ?)
"text" String (xhr.responseTextと同じ?)

今まではXHRからバイナリを扱うのは困難だったわけだけど、それが簡単になったというわけ。

夢が広がりますね!!!

Google Chrome は既に実装してた。Chrome実装早いなあ。