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ではうまくいくものだから、またなんとも。
このブラウザ依存性は、本当になんとかして欲しいと切に願う。
以下、ソース。
XML形式は視認性がよくて好きなんだけどなぁ。
おとなしくJSON使っとけってことなのかしら。