xiaohantx
V2EX  ›  问与答

想问下前端做打包是否可行

  •  
  •   xiaohantx · Mar 31, 2022 · 2826 views
    This topic created in 1690 days ago, the information mentioned may be changed or developed.
    比如二维码需要批量下载,后端返回 100 个 code,前端把这 100 个 code 本地转成 100 个二维码然后再进行本地打包后下载。
    15 replies  •  2022-04-01 09:47:00 +08:00
    ysc3839
    ysc3839
    Mar 31, 2022 via Android
    1
    显然是可以的,有纯 js 实现的 zip 压缩
    cheng6563
    cheng6563
    Mar 31, 2022❤️1
    2
    wasm 都快成新一代容器平台了,你说啥玩意不能做
    3dwelcome
    3dwelcome
    Mar 31, 2022
    3
    我以前一直用 JSON ,认为 JS 可能不太适合处理二进制数据。

    后来才知道这是人生错觉之一。
    xiaohantx
    xiaohantx
    OP
    Mar 31, 2022
    4
    @ysc3839 每个图片应该要先缓存一下然后再打包吧。
    ysc3839
    ysc3839
    Mar 31, 2022 via Android
    5
    @xiaohantx 什么意思?
    xiaohantx
    xiaohantx
    OP
    Mar 31, 2022
    6
    @ysc3839 就是打包问题不大,但是打包里的内容(即二维码)是不是要先保存下来再打包
    chnwillliu
    chnwillliu
    Mar 31, 2022 via Android
    7
    @xiaohantx 不用,生成的图片暂时放内存里就行。
    ysc3839
    ysc3839
    Mar 31, 2022 via Android
    8
    @xiaohantx 不需要保存到硬盘,直接存在变量里就可以
    bnm965321
    bnm965321
    Mar 31, 2022
    9
    生成 Image, File 对象。然后用 zip.js 打包成 Blob? 让用户下载即可
    gamexg
    gamexg
    Mar 31, 2022 via Android
    10
    之前发现 js 能直接生成 excel 文件,当时惊呆了
    zhouyg
    zhouyg
    Mar 31, 2022
    11
    前端可以操作二进制数据,可以把 100 张图片打包成一个压缩包,借助 worker/wasm 甚至都不会卡顿
    libook
    libook
    Mar 31, 2022
    12
    HTML5 之后就基本可以实现在前端对数据进行二进制处理,然后以下载的形式让用户保存文件到特定位置。
    libook
    libook
    Mar 31, 2022
    13
    浏览器本身是有缓存的,可能是内存,也可能是浏览器自己的临时缓存文件,图片要先从服务器上下载到浏览器的缓存里,然后进行打包,再生成压缩包让用户保存。
    Pionxzh
    Pionxzh
    Apr 1, 2022 via Android
    14
    可行,但你这个需求够奇怪的
    xiaohantx
    xiaohantx
    OP
    Apr 1, 2022
    15
    @Pionxzh 因为二维码图片要打印出来,但是后端不想把二维码生成并打包放在服务器进行
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1881 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 10:02 · PVG 18:02 · LAX 02:02 · JFK 05:02
    ♥ Do have faith in what you're doing.