使用XMLHttpRequest

时间:2017-05-25 22:31:46

标签: javascript xmlhttprequest progress

我在服务器上通过HTTP访问的服务相当长。我需要一种在XMLHttpRequest正在进行时在Web浏览器中显示进度的方法。我正在尝试使用“进度”事件,但事件永远不会触发,直到传输完成。

在服务器端,我正确地设置了Content-Length标头,然后每隔一秒发出一个字节来指示进度。 (这只是用于测试。想法是实际进程会为每个进度百分比发送一个字节。)在客户端,我在XMLHttpRequest上设置progress事件,目的是看看如何已收到许多字节,这也是完成的百分比。 (发送100个字节= 100%完成)

如果我直接连接到服务器(例如telnet),我会看到它每1秒输出一个字节。但是在Web浏览器中,在整个传输完成之前,我没有得到任何进度事件!对another question的评论表明浏览器在收到至少69个字节之前不会开始发送进度事件,所以为了好的措施,我在开始时发送了100个字节。然而,我仍然没有发生任何事件。

更新:如果我在开始时发送1000个字节,我也没有得到任何进展事件。但是,如果我发送10000个字节,我几乎每发送一个额外的字节就会得到事件。由于规范(根据链接的问题)似乎建议不要接近这么多字节应该是必需的,我有点担心我是否可以依赖它在各种浏览器和平台上工作。

0 个答案:

没有答案