2014-04-06 49 views
0

我想要做的是通過使用ffmpeg轉換視頻,這需要很長時間才能完成,通過向服務器發送ajax請求來完成,但不會讓用戶等到視頻轉換完成。中斷Ajax函數阻止它完成?

如果用戶刷新頁面後請求發送劑量停止功能表完成? 這是一個好方法,或者我應該爲視頻轉換做一個隊列?

+0

'如果用戶在請求發送後刷新頁面劑量,停止函數形式完成'發出用戶中止,如果你的服務器不忽略用戶中止然後是(php)函數將停止 –

+0

謝謝,我認爲我的服務器忽略用戶中止我必須檢查。如果它被忽略,那麼沒有問題吧? –

回答

2

您可以使用以下結構;

  • 當用戶啓動視頻轉換,發送請求通過AJAX到後端轉換
  • 當請求中發送,您可以設置服務器端的cookie(它可以在瀏覽器可讀也)。
  • 請求發送後,您可以顯示一個處理欄。
  • 當用戶刷新頁面時,您將檢查cookie值是否開始視頻轉換。如果存在,您可以繼續再次顯示進度條。
  • 轉換完成後,您可以將cookie值設置爲「已完成」,並且ajax檢查呼叫會告知轉換爲用戶的狀態。

我假設你在特定的時間間隔內進行ajax調用以獲得轉換狀態。如果不使用ajax poll,則可以使用websockets將結果發送回瀏覽器客戶端。 Cookie值可以由客戶端修改,因此如果您對cookie值進行加密或將視頻轉換頁面設置爲受限制的頁面,則會很好。如果視頻轉換頁面僅限註冊用戶,則可以使用db而不是cookie設置轉換狀態。