【javascript】arrayBuffer对象的理解

最近一直突然学习了一些关于本地存储的知识,然后发现网络上有些可以将图片存储到本地, 使用的是indexedDB 存储介质, 而存储的类型为arrayBuffer,于是找了一些学习arrayBuffer的优秀的博客做了一个整理。

张鑫旭 :  ”理解数据类型 “ 博客介绍

MyMichael:  ”ArrayBuffer类型化数组 “博客介绍

http://blog.csdn.net/lichwei1983/article/details/43893025

ArrayBuffer 主要是存储2进制数据,类似于0101的这种格式,而我们对这种类型的数据源是无法进行修改的。

下面是我的理解,首先我们先使用ajax将远程的二进制读取出来

    
var request = new XMLHttpRequest();
    request.open('GET', '/images/demo.jpg', true);
    request.responseType = 'arraybuffer'; // 响应类型为 ArrayBuffer

    // 将数据存储到 indexedDB中
    request.addEventListener('readystatechange', function() {
        if (request.readyState === 4) { // readyState DONE

            var blob = new Blob(request.response),  //将arrayBuffer转成2进制blob
                imageURI = window.URL.createObjectURL(blob), // 生成 本地资源URI对象
                img  = new Image();
            img.src = imageURI;
            document.documentElement.appendChild(img); // 附加在body元素下
        }
    });

     request.send(null);

可以接受  二进制的图片文件类型,也可以传输二进制的ArrayBuffer。

var request = new XMLHttpRequest(),
    data     = new Int32Array([1024,4096,8192]);
request.open("POST","xxx",true);
request.send(data.buffer);


ArrayBuffer类型会作为一个固定的内存空间被开辟出来,会很好的进行计算处理



你可能感兴趣的:(javascript基础)