gpt4 book ai didi

javascript - 获取压缩文本文件并在客户端浏览器中解压缩,在 Javascript 中可行吗?

转载 作者:可可西里 更新时间:2023-11-01 02:05:52 25 4
gpt4 key购买 nike

我正在开发一个包含 Javascript 的网页。此 js 使用存储在平面文件中的静态字符串数据(大约 1-2 MB)。我可以使用 gzip 或任何其他算法对其进行压缩以减少传输负载。

是否可以使用 Ajax 获取此二进制文件并在客户端浏览器中将其解压缩为字符串(稍后我可以将其拆分)。如果是,我该如何实现?有人有代码示例吗?

最佳答案

另一个图书馆或网站就是这个,虽然它的例子很少,但它有一些可以看到的完整测试用例。

https://github.com/imaya/zlib.js

下面是一些复杂的测试用例 https://github.com/imaya/zlib.js/blob/master/test/browser-test.js https://github.com/imaya/zlib.js/blob/master/test/browser-plain-test.js

代码示例看起来非常紧凑。就这两行代码...

// compressed = Array.<number> or Uint8Array
var gunzip = new Zlib.Gunzip(compressed);
var plain = gunzip.decompress();

如果你看这里https://github.com/imaya/zlib.js/blob/master/bin/gunzip.min.js你看到他们有你需要包含的打包 js 文件。您可能需要在 https://github.com/imaya/zlib.js/blob/master/bin 中包含其他一两个.

无论如何,将这些文件放入您的页面,然后将您从服务器预压缩的数据提供给 GUnzip 对象,然后它就会如预期的那样。

您将需要下载数据并使用其他函数自行将其放入数组中。我认为他们不包括这种支持。

所以请尝试从 https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data 下载这些示例

function load_binary_resource(url) {
var req = new XMLHttpRequest();
req.open('GET', url, false);
req.overrideMimeType('text\/plain; charset=x-user-defined');
req.send(null);
if (req.status != 200) return '';
return req.responseText;
}

// Each byte is now encoded in a 2 byte string character. Just AND it with 0xFF to get the actual byte and then feed that to GUnzip...
var filestream = load_binary_resource(url);
var abyte = filestream.charCodeAt(x) & 0xff; // throw away high-order byte (f7)

=====================================还有 Node.js

问题类似于 Simplest way to download and unzip files in Node.js cross-platform?

在 nodejs 文档中有这个示例代码。我不知道它比那更具体...... http://nodejs.org/api/zlib.html

关于javascript - 获取压缩文本文件并在客户端浏览器中解压缩,在 Javascript 中可行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14727856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com