2011-12-19 64 views
1

我有一個Play應用程序,用於編譯幕後的一些代碼,我想知道在作業開始之前首先渲染「請稍候...」消息的最佳策略是什麼然後一旦完成就發出「完成工作」的消息。播放:如何在工作之前和之後進行渲染

它不是可以被分塊的東西,它可以做或不做,所以我猜測沒有使用websockets唯一的方法是用ajax進行輪詢?

謝謝!

+1

有一個[Pusher Play框架模塊](http://www.playframework.org/modules/pusher),您可以使用它將長時間運行的作業的進度通過WebSocket連接推送到客戶端。 – leggetter 2011-12-20 13:38:03

回答

3

當執行作業(使用.now())時,它返回一個Promise對象。使用這個,你可以使用功能和ajax(長輪詢)或網絡套接字播放await

所以,你會做以下

  1. 顯示請稍候
  2. 頁面讓你的Ajax調用,執行作業,並等待作業完成
  3. 當你的Ajax只是返回你更新頁面,無論是JavaScript更新到div還是重定向到新頁面。
1

聽起來像Ajax是一個很好的技術,但你不需要輪詢。

發送一個Ajax請求並同時顯示「請稍候...」,然後當響應到達時,顯示「作業完成」。是的,你應該在「打工」中做長時間運行的任務,所以你不會阻塞太久。

相關問題