多部分/x混合替换是一种MIME类型,用于包含多个部分的内容,每个部分替换前一部分。这可以用于实现服务器推送/反向ajax / comet,而且显然至少应该在Firefox中工作。为了测试这一点,我设置了一个服务器,它在每个部分之间产生以下延迟输出:
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代码:
var r = new XMLHttpRequest();
r.multipart = true;
r.open('GET', '/', true);
r.onreadystatechange = function () {
console.log(r.responseText.length);
};
r.send();我预计每个responseText都会替换前一个,但它们似乎实际上是附加在一起的。随着服务器产生更多的输出,responseText的大小不断增加。有没有办法只得到最新的替换部件?
发布于 2013-12-03 10:06:11
这已经不可能了,因为支持已经从Firefox中删除了。请参阅bug.cgi?id=843508
发布于 2013-12-02 04:07:33
在每个部分之后存储响应长度如何,并将其用作偏移量:
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();https://stackoverflow.com/questions/20319727
复制相似问题