【问题标题】:Play: How to render before and after a job播放:如何在作业之前和之后进行渲染
【发布时间】:2011-12-19 20:56:43
【问题描述】:

我有一个 Play 应用程序,它在后台编译了一些代码,我想知道最好的策略是在作业开始之前先呈现“请稍候...”消息,然后在完成后呈现“作业完成”消息结束了。

这不是可以分块的东西,它要么完成,要么没有,所以我猜测不使用 websockets 唯一的方法是使用 ajax 进行轮询?

谢谢!

【问题讨论】:

  • 有一个Pusher Play Framework module,您可以使用它通过与您的客户端的 WebSocket 连接来推送关于长期运行的作业进度的更新。

标签: java playframework jobs


【解决方案1】:

执行 Job 时(使用 .now()),它返回一个 Promise 对象。使用它,您可以使用 play await 函数和 ajax(长轮询)或 web 套接字。

所以,你会做以下事情

  1. 显示请稍候页面
  2. 进行执行作业并等待作业完成的 ajax 调用
  3. 当您的 ajax 返回时,您只需更新页面,无论是对 div 的 javascript 更新,还是重定向到新页面。

【讨论】:

    【解决方案2】:

    听起来 Ajax 是一种很好的技术,但您不需要轮询。

    发送一个Ajax请求,同时显示“please wait...”,当响应到达时,显示“job complete”。是的,你应该在“play job”中执行长时间运行的任务,这样你就不会阻塞线程太久。

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-18
      相关资源
      最近更新 更多