我正在使用 XMLHttpRequest 将 400-500k 文件 POST 到相对较慢的基于 ESP32 的服务器。上传需要几分钟时间。 ReadyState 4 的 onreadystatechange 事件按预期在最后触发。然而,更新进度条的 onprogress 事件几乎立即触发并完成 100%。
我怀疑浏览器和应用程序的 HTTP 处理程序之间的多层中的某些缓冲区吸收了整个文件,使其看起来像是已经被传输了。
问题1:我可以在浏览器端做些什么来获取ESP FATFS中保存数据的实时进度吗?
问题 2:我有一个想法,从不同的 XMLHttpRequest 发送并行请求,该请求将接收已写入的字节数。这似乎是一个有点麻烦的解决方案,需要服务器上额外的 HTTP 处理程序和异步工作线程。我可以做一些更简单的事情吗?
我对实际代码没有太多经验,但我知道它是如何工作的。基本上,发布请求将在完成后立即发回完整的数据。您可以做的就是在几秒钟内发送进度百分比请求并等待回复。当您收到该响应时,请在 HTML 中更新它。我是这个网站的新手,如果我帮不上什么忙,我很抱歉。如果它是吸收文件的缓冲区。您还可以逐字节发送它,并在服务器上让系统自动运行,最终将其全部编译在一起并使其成为一个文件。不然我不知道怎么帮忙。就像我说的,我是新人,如果我帮不上忙,很抱歉。我只是想尝试一下,如果可以的话:(