2011年5月22日日曜日

JavaScriptでFloatを読み込んでみた2

前回の続編。
今度はTyped Arrayを使ってみました。

ChromeやFirefoxでは動作しましたがIE9は駄目でした。
ベンチはとってないけどMathのメソッド呼ぶよりは速いかもしれない。
var readFloat = function(blob) {
        var size = 4;
        var buffer = new ArrayBuffer(size * 8);

        var v = new Uint8Array(buffer, 0, size);
        var i = 0;

        for (i = 0; i < size; ++i) {
            v[i] |= blob.charCodeAt(i) & 0xff;
        }

        return (new Float32Array(buffer, 0, 1))[0];
    }

    $.ajax("float.bin",
    {
        beforeSend: function(xhr){
            xhr.overrideMimeType("text/plain; charset=x-user-defined");
        },
        success:function(data)
        {
            console.log(readFloat(data));
        }
    });

0 件のコメント:

コメントを投稿