Javascript 如何在连接打开时清除xml http(xhr)响应
在我的servlet中,我设置以下内容,并在每一秒钟将数据刷新到响应的outputstreamJavascript 如何在连接打开时清除xml http(xhr)响应,javascript,ajax,servlets,Javascript,Ajax,Servlets,在我的servlet中,我设置以下内容,并在每一秒钟将数据刷新到响应的outputstream response.setContentType("text/html"); response.addHeader("Connection", "Keep-Alive"); response.addHeader("Transfer-Encoding", "chunked"); while(true){ Thread.sleep(1000); resOut.write(hello);
response.setContentType("text/html");
response.addHeader("Connection", "Keep-Alive");
response.addHeader("Transfer-Encoding", "chunked");
while(true){
Thread.sleep(1000);
resOut.write(hello);
resOut.flush();
}
在我的客户端javascript中,我使用了ajax
xmlhttp.onprogress = function() {
alert(xmlhttp.responseText);
}
浏览器正在接收刷新的数据并触发警报,但我面临的问题是responseText是一个太大的对象,而不是块,如果我尝试在xmlhttp对象上将ResponseType设置为arrybuffer或blob等,我会看到null,直到响应流按预期从服务器关闭
那么,如何在中间阶段清除responseText(_readonly),或者在连接打开时使用arraybuffer和receive chunk使html页面上的数据可用?据我所知,这就是HTTP协议的工作原理。在完成所有操作之前,您将无法读取响应(或其中的块) 您有两种解决方法:
这里可能有一个3,但取决于您使用的服务器语言。我是一名.NET开发人员,只知道Signal。谢谢,使用WebSockets,其他方法似乎都是死路一条,如果您有任何使用xhr流的工作模型,请告诉我。不客气!谢谢您接受回复。遗憾的是,我没有。在所有的网站上我参与的项目、web sockets和Signal已经足够了:(