js 有什么压缩/解压文件的方法,可以回调当前进度的吗?

2021-08-26 14:51:58 +08:00
 James369
要用 js 实现一个对 gzip 文件的压缩 /解压缩,主要是要做一个进度条的展示,所以需要获取进度信息。
谢谢!
1658 次点击
所在节点    JavaScript
6 条回复
James369
2021-08-26 14:59:21 +08:00
最好能够有一个功能: 就是压缩 /解压过程中,可以 cancel 取消的。
ysc3839
2021-08-26 15:23:38 +08:00
解压缩是 CPU 密集型操作,在 Web 中会导致页面等待回调函数执行完毕才有响应。要解决这个问题估计只能用 Web Worker 。
James369
2021-08-26 15:26:58 +08:00
@ysc3839 不会要自己造轮子吧,这可是手艺活。。。
ysc3839
2021-08-26 15:32:39 +08:00
@James369 去搜了下,只找到了个久不更新的 gzip-js 。可以考虑用 emscripten 把 C/C++ 代码编译成 wasm 或 asm.js 。
typetraits
2021-08-26 15:39:05 +08:00
造个轮子吧,Rust 有一个 wasm-flate 库,在 wasm 里完成解压缩,逻辑放到 service worker 里跑,之后发送消息给网页就行
kkocdko
2021-08-26 21:14:18 +08:00
首先考虑砍需求。
或者就像楼上说的那样 wasm,进度可以 post message,cancel 有 terminate 的 api

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/798144

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX