【javascript】arrayBuffer对象的理解

来源:互联网 发布:日军退子弹 知乎 编辑:程序博客网 时间:2024/06/05 21:09

最近一直突然学习了一些关于本地存储的知识,然后发现网络上有些可以将图片存储到本地, 使用的是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类型会作为一个固定的内存空间被开辟出来,会很好的进行计算处理



0 0