V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
James369
V2EX  ›  JavaScript

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

  •  
  •   James369 · 2021-08-26 14:51:58 +08:00 · 1661 次点击
    这是一个创建于 1221 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要用 js 实现一个对 gzip 文件的压缩 /解压缩,主要是要做一个进度条的展示,所以需要获取进度信息。
    谢谢!
    6 条回复    2021-08-26 21:14:18 +08:00
    James369
        1
    James369  
    OP
       2021-08-26 14:59:21 +08:00
    最好能够有一个功能: 就是压缩 /解压过程中,可以 cancel 取消的。
    ysc3839
        2
    ysc3839  
       2021-08-26 15:23:38 +08:00
    解压缩是 CPU 密集型操作,在 Web 中会导致页面等待回调函数执行完毕才有响应。要解决这个问题估计只能用 Web Worker 。
    James369
        3
    James369  
    OP
       2021-08-26 15:26:58 +08:00
    @ysc3839 不会要自己造轮子吧,这可是手艺活。。。
    ysc3839
        4
    ysc3839  
       2021-08-26 15:32:39 +08:00
    @James369 去搜了下,只找到了个久不更新的 gzip-js 。可以考虑用 emscripten 把 C/C++ 代码编译成 wasm 或 asm.js 。
    typetraits
        5
    typetraits  
       2021-08-26 15:39:05 +08:00
    造个轮子吧,Rust 有一个 wasm-flate 库,在 wasm 里完成解压缩,逻辑放到 service worker 里跑,之后发送消息给网页就行
    kkocdko
        6
    kkocdko  
       2021-08-26 21:14:18 +08:00 via Android
    首先考虑砍需求。
    或者就像楼上说的那样 wasm,进度可以 post message,cancel 有 terminate 的 api
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2565 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:22 · PVG 15:22 · LAX 23:22 · JFK 02:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.