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

2022-03-31 09:45:42 +08:00
 xiaohantx
比如二维码需要批量下载,后端返回 100 个 code,前端把这 100 个 code 本地转成 100 个二维码然后再进行本地打包后下载。
2079 次点击
所在节点    问与答
15 条回复
ysc3839
2022-03-31 09:47:40 +08:00
显然是可以的,有纯 js 实现的 zip 压缩
cheng6563
2022-03-31 09:49:48 +08:00
wasm 都快成新一代容器平台了,你说啥玩意不能做
3dwelcome
2022-03-31 09:54:12 +08:00
我以前一直用 JSON ,认为 JS 可能不太适合处理二进制数据。

后来才知道这是人生错觉之一。
xiaohantx
2022-03-31 09:59:48 +08:00
@ysc3839 每个图片应该要先缓存一下然后再打包吧。
ysc3839
2022-03-31 10:06:34 +08:00
@xiaohantx 什么意思?
xiaohantx
2022-03-31 10:11:54 +08:00
@ysc3839 就是打包问题不大,但是打包里的内容(即二维码)是不是要先保存下来再打包
chnwillliu
2022-03-31 10:21:23 +08:00
@xiaohantx 不用,生成的图片暂时放内存里就行。
ysc3839
2022-03-31 10:24:39 +08:00
@xiaohantx 不需要保存到硬盘,直接存在变量里就可以
bnm965321
2022-03-31 11:25:33 +08:00
生成 Image, File 对象。然后用 zip.js 打包成 Blob? 让用户下载即可
gamexg
2022-03-31 12:05:37 +08:00
之前发现 js 能直接生成 excel 文件,当时惊呆了
zhouyg
2022-03-31 14:20:29 +08:00
前端可以操作二进制数据,可以把 100 张图片打包成一个压缩包,借助 worker/wasm 甚至都不会卡顿
libook
2022-03-31 14:47:22 +08:00
HTML5 之后就基本可以实现在前端对数据进行二进制处理,然后以下载的形式让用户保存文件到特定位置。
libook
2022-03-31 14:48:34 +08:00
浏览器本身是有缓存的,可能是内存,也可能是浏览器自己的临时缓存文件,图片要先从服务器上下载到浏览器的缓存里,然后进行打包,再生成压缩包让用户保存。
Pionxzh
2022-04-01 09:26:05 +08:00
可行,但你这个需求够奇怪的
xiaohantx
2022-04-01 09:47:00 +08:00
@Pionxzh 因为二维码图片要打印出来,但是后端不想把二维码生成并打包放在服务器进行

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

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

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

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

© 2021 V2EX