【问题标题】:Refresh webpage after postback was received收到回发后刷新网页
【发布时间】:2014-08-28 15:06:59
【问题描述】:

我正在使用图像处理 API。 (Blitline)

就其性质而言,图像处理需要一段时间才能完成。假设 3 - 6 秒。

提交作业后,API 立即返回我已处理图像的未来 url,但 3 - 6 秒后该 url 将返回 404,因为图像尚未完成处理。

工作完成后,Blitline 服务会向我服务器上的 PHP 脚本发送回传,告诉我它已完成。

此时,我想将处理后的图像展示给用户。

是否有一种技术可以在回发时将图像加载到用户浏览器中?

我知道这可以通过 Javascript 轮询来完成。例如。每 2 秒检查一次回发是否已经进入。

但我想知道是否有更现代的方法可以做到这一点?

【问题讨论】:

  • 是的 websockets,如果您不想自己构建它,请查看 socketo.me
  • 对于这个用例,我会坚持使用 ajax 轮询,对于只需要保持打开几秒钟的连接来说,套接字似乎有点矫枉过正
  • 我同意。网络套接字和棘轮很有趣,但对我的应用程序来说太重了。
  • 我同意轮询在这里可能是一种合适的方法,但请记住,这将大大减少可能的并发用户数量。

标签: javascript php jquery api postback


【解决方案1】:

另一个必须处理的问题是 S3 延迟。仅仅因为图像被上传到 S3 并且 S3 已经回复它得到它,并不意味着该图像将立即公开可用。虽然它通常在几毫秒内可用,但有时可能会延长到几秒钟。

由于您有 URL,因此您只需轮询 S3 以获取图像。这是一个例子:

https://coderwall.com/p/hy_qjw

此示例尝试从 S3 加载隐藏图像。如果成功,它会在几秒钟内再次尝试(您可以调整 setTimeout)。无论您是在等待 Blitline 完成,还是等待 S3 使图像可用,这都会起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 2020-10-22
    • 2011-12-08
    相关资源
    最近更新 更多