html 有没办法在文本中嵌入二进制数据?

2019-08-19 16:24:24 +08:00
 51300520

是不是只有 base64 处理再以文本传输这种方式?

1863 次点击
所在节点    问与答
13 条回复
cheneydog
2019-08-19 16:27:36 +08:00
你想干嘛?
OhYee
2019-08-19 16:49:29 +08:00
把二进制塞到响应的 body 里,或者整一个 websocket 传输都符合你要求把
Yourshell
2019-08-19 17:55:11 +08:00
你转换成 010101010 的格式也行啊
51300520
2019-08-19 18:45:43 +08:00
@OhYee 怎么塞到响应的 body 里,就是要这个效果
51300520
2019-08-19 18:46:34 +08:00
@cheneydog 有一段文本被压缩过后的二进制,服务端解压消耗太大,想直接发二进制客户端解压
misaka19000
2019-08-19 18:48:06 +08:00
当然可以,我之前做过
51300520
2019-08-19 18:48:26 +08:00
@Yourshell 太耗带宽
51300520
2019-08-19 18:48:48 +08:00
@misaka19000 怎么实现啊,直接放入文本传输好像不行啊
misaka19000
2019-08-19 18:52:11 +08:00
直接 JS 通过 http 请求去拿数据,后台返回二进制[]byte 就行了
51300520
2019-08-19 18:54:41 +08:00
@misaka19000 哦,你是说 ajax 那个
OhYee
2019-08-19 19:40:07 +08:00
@51300520
后端直接把数据写到 body 前端发个请求读一下就行额。

一般来说后端都可以直接操作 reponse 来实现修改 body 吧,具体看你框架的实现了。

前端可以用类似这样的方式拿到 body 的二进制数据,当然应该别的框架有更好的方法拿到数据(我不是前端,猜测应该有)
fetch("https://www.baidu.com").then(data=>data.body.getReader().read().then(d=>console.log(d.value)))
51300520
2019-08-19 20:00:52 +08:00
@OhYee
这种只能单独做一次请求,二进制和纯文本不能混一起,不然要出错,只能第一次请求网页文本,第二次 ajax 请求二进制数据
msg7086
2019-08-20 09:08:47 +08:00
JS 字符串里放编码过的二进制不行么。

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

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

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

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

© 2021 V2EX