MessagePack-JS (4)
cuzic です。
MessagePack-JS をさらに更新しました。
- MessagePack.pack() による、MessagePack へのエンコーディング機能の追加。
- エンコーディングに対応したテストコードも追加
- MessagePack.unpack() のテストコードに XMLHTTPRequest を使った例を追加した。
- XHR を使う対抗側のコードの追加。
MessagePack-JS へのエンコーディングも可能にしたことで、一応、基本的なやりたいことについては、実現しました。
MessagePack-JS を作ったときのもともとのモチベーションは JavaScript の勉強だったのですが、実装してみて、MessagePack にはいろいろと利点があることが確認できたので、整理してみたいと思います。
非常にコンパクト
MessagePack の特徴として、同じ内容のデータでも少ない容量しか必要としないという点があります。
これは、非常に容量が限られている Cookie (最大でもわずか 3.8KB)や、Flash の SharedObject(最大でもわずか 1 MB 程度)といった状況では、この容量制限の中で効率的にデータを格納できる MessagePack 形式は有効だと思います。
最近では HTML5 の Web Storage API もありますが、それでも容量は Google Chrome の場合で 最大 2.5MB 程度と制限されています。
コンパクトにデータを格納できる形式への需要は高いように思います。
通信時間が短縮できる。
パース処理だけで比較した速度面では JSON.parse よりも劣るものの、データ量そのものがコンパクトなので、通信時間は短く済みます。
クライアント側はアイドル時間が多いが、サーバ側は負荷が高いケースも多いかと思いますし、XHR で取得したデータをパースするような場合は、通信時間が大半を占めることも多いですので、メッセージサイズが小さくなり通信時間を短縮できるメリットは大きいでしょう。