javascript - 何时使用 Uint8Array、Uint16Array、Uint32Array

标签 javascript arrays xmlhttprequest byte bytebuffer

我有一个应用程序通过 XMLHttpRequest 加载用户文本并以二进制格式返回它。我知道 8、16 和 32 之间的主要区别在于每个元素的字节数,但我不知道何时使用它们。

例如,对于我的应用程序,由于文本文件实际上可以包含任何可能的字符,那么哪一个最好?

我尝试了不同的文件,包括一个有表情符号的文件,似乎在 Uint8Array 中表情符号占用了 4 个索引。

是否有任何理由让我不应该只使用 Uint8Array,或者是否有理由让我在读取文件时动态选择?我读过 MDN每个都有文档,但除了字节大小之外,它似乎没有提供太多见解。

这是我目前用来加载文件的代码:

asset= new XMLHttpRequest();

asset.addEventListener('readystatechange', function load() {

    if (asset.readyState == 4 && asset.data.status == 200) {

        const arrayBuffer = asset.data.response;

        if (arrayBuffer) asset.data = new Uint8Array(arrayBuffer);

    }

}.bind(this), false);

// Error handling.

asset.responseType = 'arraybuffer';

asset.open('GET', asset.src);

asset.send();

最佳答案

这完全取决于您向其中发送的数据类型。 8 位适用于 ASCII 字符等。 16 位用于 UCS-2。 32 位用于 UTF-32,您不一定会使用它,因为它更适用于边缘情况。 Windows 很少使用它,Unix 有时只在内部应用程序中使用它。

关于javascript - 何时使用 Uint8Array、Uint16Array、Uint32Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54236981/

相关文章:

javascript - 将javascript onclick消息添加到php动态列表

javascript - 如果 ReactJS 中页面位于应用程序内,如何让应用程序在单击时刷新?

javascript - Greasemonkey 函数在我的脚本中不起作用?

javascript - 为什么这不是一个有效的链式函数?

php - 如何在 1 个 http 请求下上传多个文件

javascript - 找到排序数组值之间的最大差异

c - 用 char 数组成员填充 union

PHP:可以从对数组元素的引用中确定父数组的名称和键吗?

jQuery AJAX - 意外的标记 + 解析器错误

javascript - 问题 : XMLHttpRequest - handle server connection lost