ES6学习笔记---二进制数组(应用)

发布时间:2019-08-09 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了ES6学习笔记---二进制数组(应用)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

说实话自从做了前端之后,还没怎么用过二进制数组,看了es6入门之后才知道原来二进制数组的用处还不少。

1、AJAX

XMLHttPRequest第一版responseTyPE属性默认为text

XMLHttpRequest第二版Xhr2允许服务器返回二进制数据,这时分成两种情况:

  • 已知二进制数据类型:responseType设为arraybuffer

  • 未知二进制数据类型:responseType设为blob

VAR xhr = new XMLHttpRequest();
xhr.open('GET', someUrl);
xhr.responseType = 'arraybuffer';

xhr.onload = function () {
  let arrayBuffer = xhr.response;
  // ···
};

xhr.send();

2、Canvas

首先看下面的例子:

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');

var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
var uint8ClampedArray = imageData.data; //Canvas元素输出的二进制像素数据,也是Typedarray数组

需要注意的是:Uint8ClampedArray这个类型是针对Canvas元素的专有类型,它是专门针对颜色,取值只能是0~255。

3、WebSocket

WebSocket可以通过@L_406_7@Buffer,发送或接收二进制数据。

var socket = new WebSocket('ws://127.0.0.1:8081');
socket.binaryType = 'arraybuffer';

// 等待直到socket打开
socket.addEventListener('open', function (event) {
  // 发送二进制数据
  var typedArray = new Uint8Array(4);
  socket.send(typedArray.buffer);
});

// 接受二进制数据
socket.addEventListener('message', function (event) {
  var arrayBuffer = event.data;
  // ···
});

4、Fetch API

Fetch API取回的数据,就是ArrayBuffer对象。

fetch(url)
.then(function(request){
  return request.arrayBuffer()
})
.then(function(arrayBuffer){
  // ...
});

5、File API

如果知道一个文件的二进制数据类型,也可以将这个文件读取为ArrayBuffer对象。

var fileInput = document.getElementById('fileInput');
var file = fileInput.files[0];
var reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function () {
  var arrayBuffer = reader.result;
  // ···
};

脚本宝典总结

以上是脚本宝典为你收集整理的ES6学习笔记---二进制数组(应用)全部内容,希望文章能够帮你解决ES6学习笔记---二进制数组(应用)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。