繁体   English   中英

请求完成时,如何在 React js 中访问 api 调用的响应数据?

[英]How can I access response data of api call in react js while request is completing?

实际上,我从 api 调用中获得了 pdf 字节,我想在下载内容时显示 pdf 数据,但在请求完成之前我无法访问响应数据,对于大型 pdf 文件,我必须等待几秒钟才能请求完成并显示它。

对于这个问题,有 4 种通用类型的“PDF”

  1. PDF(因此不是 PDF)的文本表示通常作为 base64 文本数据 uri stream 在浏览器中下载并转换为真正的 PDF。因此它非常适合非常小的文件流,但延迟是必须膨胀才能传输,然后在与真实 PDF 相同的行为之前在设备中 100% 接收和转换(重新压缩),因此传输速度最慢,查看速度最慢。

  2. 一个标准的 PDF 尾部有一个刺,在下载完整文件之前无法查看它,并且尾部外部参照表可以指向可以找到第 1 页的无数位的位置,因此需要时间来解压缩和反编译屏幕stream 图形。 因此,流式传输对于早期观看没有任何价值,只是比 base64 传输更快。

  3. Liniarized PDF,它被设计为在到达时显示第 1 页,因为它将尾部的一部分保留在文件的头部(因此术语 Web 被优化)但是它同样需要在所有文件之前完全下载到设备中可以查看页面。 此处由 PDFTron 描述https://www.pdftron.com/blog/mobile/streaming-a-pdf-from-the-web/

  4. 一种专业的流媒体传输,其中 pdf 被分块并发送给专业观众,由专业观众根据需要重新组装各个部分。 因此是一种商业解决方案。 我能想到的一个例子是 PDFTron。 不是严格意义上的平均 PDF 文件传输方式,因此不太可能在公众 PDF 观众中看到。

因此,在回答您的问题时,您需要将 PDF 转换为“线性化”

您可能希望 stream 使用流 API的数据。

这是一个正在加载的 png 的示例(以“块”形式): https://mdn.github.io/dom-examples/streams/png-transform-stream/

(您需要在开发工具中禁用缓存并限制您的 inte.net 速度才能看到它分段加载)。

我相信PDF.js支持流式传输

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM