与这篇文章类似,需要向浏览器发送一个 30MB 的大 JSON 文件,压缩到 3MB。(是的,是的,解压缩的过程很大而且很密集,但最好将其作为静态文件提供一次,而不是像对 REST API 进行 150 次单独的 AJAX 调用,并且这里有一点前期加载时间是可以的)。
和原帖一样,它是一个静态文件,所以可以提前压缩(所以服务器不需要在每次请求时压缩它)。此外,可以从服务器上的公共目录中提供它,在 Node.js / Express.js 中我已将其标记为静态:
app.use(express.static(__dirname + "/public"));
一位评论者回答:
“也可以预压缩你的 JSON,然后告诉 Apache 提供带有适当标题的文件,以避免一直重新压缩。”
问题1: 在Node/Express中我该如何做,即告诉Node告诉浏览器文件是gzip格式,以便浏览器自动解压缩?
另一个答案评论“......但请检查浏览器是否支持压缩”,这引发了另一个问题?
问题 2: ~大多数~现代浏览器有解压缩内容的能力吗?还是我最好只包含一个用于解压缩的 javascript 库,通过 Ajax 作为二进制文本获取数据,并始终在我自己的代码中解压缩它而不是浏览器的本机实用程序?
(出于我的目的,排除一些旧浏览器是可以的,例如放弃 IE6 可以,放弃对 IE9 的支持则不行)