首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多部分/x混合替换为XMLHttpRequest

使用多部分/x混合替换为XMLHttpRequest
EN

Stack Overflow用户
提问于 2013-12-02 02:02:31
回答 2查看 6K关注 0票数 4

多部分/x混合替换是一种MIME类型,用于包含多个部分的内容,每个部分替换前一部分。这可以用于实现服务器推送/反向ajax / comet,而且显然至少应该在Firefox中工作。为了测试这一点,我设置了一个服务器,它在每个部分之间产生以下延迟输出:

代码语言:javascript
复制
HTTP/1.1 200 OK
Content-type: multipart/x-mixed-replace; boundary=whatever

--whatever
Content-type: text/plain

tick

--whatever
Content-type: text/plain

tock

--whatever
...

在客户端,这是我在Firefox中运行的JavaScript代码:

代码语言:javascript
复制
var r = new XMLHttpRequest();
r.multipart = true;
r.open('GET', '/', true);
r.onreadystatechange = function () {
    console.log(r.responseText.length);
};
r.send();

我预计每个responseText都会替换前一个,但它们似乎实际上是附加在一起的。随着服务器产生更多的输出,responseText的大小不断增加。有没有办法只得到最新的替换部件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 10:06:11

这已经不可能了,因为支持已经从Firefox中删除了。请参阅bug.cgi?id=843508

票数 3
EN

Stack Overflow用户

发布于 2013-12-02 04:07:33

在每个部分之后存储响应长度如何,并将其用作偏移量:

代码语言:javascript
复制
var offset = 0;
var r = new XMLHttpRequest();
r.multipart = true;
r.open('GET', '/', true);
r.onreadystatechange = function () {
    var latestPart = r.responseText.substring(offset) 
    offset = r.responseText.length;
};
r.send();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20319727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档