Firefox + responseXML + 仕様

Firefox で困ったちゃんな問題に出くわしました。

XMLで 4096 byte以上のデータをjavascript側で受け取ってごにょごにょしようとすると、4096 byteで勝手に切り詰められてしまうという
正確には、4096byteずつchildNodesに分割されてしまうみたいでした。
childNodes[0].nodeValueの4096byte以降は、childNodes[1].nodeValueに格納されるようです。
つまり、10000byte送ったらchildNodesが3つ作成されるみたいな。
しかし、なぜそんな仕様にしたのやら。

滅多に4096byte以上の文字列なんて送らないからいいけど、送りたいときとても困る。

解決策を探したら、どうやらnormalize()をしてあげるとうまくいくみたいです。

また、JSON形式で送って受け取っても問題ないようです。

IE, Safariではうまくいくものだから、またなんとも。
このブラウザ依存性は、本当になんとかして欲しいと切に願う。

responseXML

以下、ソース。

responsexml.html

responsexml.js

responsexml.php

XML形式は視認性がよくて好きなんだけどなぁ。
おとなしくJSON使っとけってことなのかしら。