我正在使用图像处理 API。 (Blitline)
就其本质而言,图像处理需要一段时间才能完成。假设 3 - 6 秒。
提交作业后,API 立即返回我处理的图像的 future url,但在 3 - 6 秒内,该 url 将返回 404,因为图像尚未完成处理。
一旦作业完成,Blitline 服务就会向我服务器上的 PHP 脚本发送回发,告诉我它已完成。
此时,我想向用户展示处理后的图像。
是否有一种技术可以在回发时将图像加载到用户浏览器中?
我知道这可以通过 Javascript 轮询来完成。例如。每 2 秒检查一次回发是否已到来。
但我想知道是否有更现代的方法来做到这一点?
最佳答案
另一个必须处理的问题是 S3 延迟。仅仅因为图像被上传到 S3 并且 S3 已响应它已收到,并不意味着该图像将立即公开可用。虽然它通常在几毫秒内可用,但有时可能会延长到几秒钟。
既然您有了 URL,您就可以轮询 S3 来获取图像。这是一个例子:
https://coderwall.com/p/hy_qjw
此示例尝试从 S3 加载隐藏图像。如果成功,它会在几秒钟后再次尝试(您可以调整 setTimeout)。无论您是等待 Blitline 完成,还是等待 S3 使图像可用,这都会起作用。
关于javascript - 收到回发后刷新网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25552187/