4

Multipart/x-mixed-replace は、それぞれ前の部分を置き換える複数の部分を持つコンテンツの MIME タイプです。これは、サーバー プッシュ/リバース ajax/コメットの実装に使用でき、少なくとも 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 のサイズは増加し続けます。最新の交換部品のみを入手する方法はありますか?

4

2 に答える 2

3

Firefox からサポートが削除されたため、これはできなくなりました。https://bugzilla.mozilla.org/show_bug.cgi?id=843508を参照してください。

于 2013-12-03T10:06:11.300 に答える
1

各部分の後に応答の長さを保存し、それをオフセットとして使用するのはどうですか:

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();
于 2013-12-02T04:07:33.243 に答える