我用龙卷风编写了一个应用程序,通过HTTP流媒体支持我网站上的实时更新。它适用于除IE7和IE8之外的所有浏览器。以下是处理HTTP流的代码:
... code to create xhr object
xhr.open('GET', 'http://192.168.0.173:8888', true);
xhr.onreadystatechange = function() {
if(xhr.readyState == 3 && xhr.status==200) {
try {
alert(xhr.responseText);
} catch(e) {
alert("noo");
}
}
}
setTimeout("xhr.send(null);", 1000);
问题是当readyState为3时,xhr.responseText不可用。经过几个小时的google,我了解了IXMLHTTPRequest.responseStream。我试着用
xhr = new ActiveXObject("MSXML2.XMLHTTP.3.0");
但结果相同。请求被发送到服务器,readyState为3,但xhr.responseStream不可用。
有什么想法吗?或者,当我检测到IE时,我应该回到长轮询吗?
谢谢
亨利
答案 0 :(得分:0)
如果您再次阅读linked page;
相比之下,IXMLHTTPRequest接口的Microsoft XML(MSXML)版本通过responseStream属性公开部分结果,是Windows Internet Explorer本机版本未实现的。请注意,此行为也与IServerXMLHTTPRequest接口不同,后者为responseBody和responseText提供部分结果。
也就是说,我想,一种不必要的复杂说法,这件事存在,但我们不这样做。无用的IE。我只是必须实现同样的事情,最终只是回到IE的长轮询。
The Dojo foundation使用了Bayeux。但我相信只有Jetty目前实施了Bayeux协议。
总之,IE,DIAF。