抓取压缩文本文件,并在客户端浏览器解压,在Javascript中是否可行?(Fetching zip

2019-07-19 09:36发布

我正在开发包含JavaScript的网页。 这个js使用静态字符串数据(约1-2 MB),其被存储在平面文件。 我可以用gzip或其他算法来减少传输负载压缩。

有没有可能取得与阿贾克斯这个二进制文件,它解成字符串在客户端浏览器(我以后可以拆分)。 如果是的话,我怎么能做到这一点? 有没有人有一个代码示例?

Answer 1:

而另一个库或网站是这一个,虽然它有几个例子,它有一些全面的测试案例,可以看出。

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文件从服务器对象的预gzip压缩的数据,然后将它作为预期。

您将需要下载的数据,并让它进入使用其他功能的阵列自己。 我不认为他们包括支持。

因此,尝试下载这些例子来自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

问题是类似于最简单的方法来下载和Node.js的跨平台解压缩文件?

有一个在文档的NodeJS此示例代码。 我不知道它是如何更具体的获得比... http://nodejs.org/api/zlib.html



Answer 2:

刚刚启用你的Apache的Gzip压缩,一切都将自动完成。

也许你将不得不字符串存储在.js文件作为JSON和启用JS MIME类型的gzip。



Answer 3:

我记得我用JS-缩小与大型数据库关闭茯苓JS应用程序(需要由于本地存储限制)和完美。 这取决于JS-的base64 。



文章来源: Fetching zipped text file and unzipping in client browsers, feasible in Javascript?