0

其他人可以确认这一点,还是我做错了什么?

在 Firefox 中,XMLHttpRequest 上传事件 load 和 loadend 仅在下载完成后触发,而不是在上传完成时触发。此外,在上传结束时不会触发进度事件。

请参阅此示例: http: //geo.kitten-x.com/testupload.html

我相信 Chrome 的行为是正确的,因为进度条一直到 100%,然后触发 load 和 loadend 事件,然后一旦脚本结束,就会发布结果。在 Firefox 中 load 和 loadend 事件仅在脚本完成后触发。

4

1 回答 1

0

显然,这些事件在下载开始而不是上传完成时触发。这是一个已知问题,在此讨论:https ://bugzilla.mozilla.org/show_bug.cgi?id=637002

Firefox 开发人员认为,在下载开始之前,无法知道上传是否已完成,因为它可能仍被缓冲在某处(在某些情况下可能必须重新发送)。

更新

解决方案是让您的第二页尽快开始返回输出,例如在 PHP 中:

ob_implicit_flush(true);
for ($i = 0; $i < ob_get_level(); $i++)
  ob_end_clean();
echo ' ';
于 2012-11-05T14:20:47.347 回答