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