首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
推荐关注
›
Meteor
›
JSLint
-
a JavaScript code quality tool
›
jsFiddle
›
D3.js
›
WebStorm
推荐书目
›
JavaScript 权威指南第 5 版
›
Closure: The Definitive Guide
广告
V2EX
›
JavaScript
今天突然有了用 xhr 处理二进制的需求
dou4cc
·
2017-03-11 15:51:29 +08:00
· 2166 次点击
这是一个创建于 2765 天前的主题,其中的信息可能已经有所发展或是发生改变。
老方法是改 charset (
http://web.archive.org/web/20080821092906/http://mgran.blogspot.com/2006/08/downloading-binary-streams-with.html
),新方法是改 responseType ,新方法性能好,语义清晰,然而我还是使用老方法,因为老方法在正文接收完全前可以读取正文,做到流式加载,而新方法不行~
第 1 条附言 ·
2017-03-11 22:45:06 +08:00
刚刚找到了 ReadStream API ,这个问题解决了
charset
xhr
突然
方法
4 条回复
•
2017-03-14 10:38:21 +08:00
1
dou4cc
OP
2017-03-11 16:18:47 +08:00
那么问题来了,怎么覆盖 BOM ?
2
zbinlin
2017-03-12 20:35:39 +08:00
xhr 里有这个 API ?还是指的是 fetch API 里的 ReadableStream ?
3
dou4cc
OP
2017-03-13 10:21:23 +08:00
@
zbinlin
指的是 fetch ,不过好像哪里不对
4
dou4cc
OP
2017-03-14 10:38:21 +08:00
@
zbinlin
fetch 不能及时 abort , stream 的粒度也难以控制,连 nightly 都不支持。我现在想到的迂回办法是仍然使用 xhr ,如果检测到 charset 不再是 x-user-defined ,就 abort 当前连接,使用 Range 标头错开一字节重新发起请求,再在单独的连接中使用 responseType 为 arraybuffer 的请求补上错开的那个字节
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
972 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms ·
UTC 23:50
·
PVG 07:50
·
LAX 16:50
·
JFK 19:50
Developed with
CodeLauncher
♥ Do have faith in what you're doing.