在上傳的大文件的第一個塊上,我們將文件詳細信息輸入到數據庫中。如果用戶導航離開頁面。 ajax請求被髮送並且該行被刪除。但是,如果他們的連接/電源關閉,則不會發送請求,並且我們的數據庫中會出現孤兒條目。在上載期間檢測客戶端超時(服務器側)
現在我們檢查最後一個文件部分的時間戳,並且在10分鐘內沒有上傳塊(1MB)的任何內容都會被刪除。我們希望能夠加快這一過程,但如果我們縮短了這一時間,那麼具有較慢互聯網連接的用戶在等待上傳時可能會遇到他們的文件/記錄被刪除。
到目前爲止,我們已經想到了2個解決方案,第一個就是我們現在使用的解決方案,如上所述。第二種方法是每隔X秒發送一次「保持活躍」請求,如果服務器在沒有收到更新的情況下進入Y秒,那麼記錄將被丟棄。
後者似乎工作更快,但似乎非常低效。有沒有人做過這樣的事情?什麼是最好的方式去做呢?
在Ubuntu上運行Apache,我也使用jQuery。
是的,垃圾回收工作看起來是正確的,我甚至可以用這種方式來做到這一點(例如,抓取AJAX請求)。只需延長超時時間,例如> 24小時。 – deceze
我應該補充的是,如果上傳者要回到上傳頁面(它列出了他們的內容,它仍然可見並「上傳」 - 我們有一個按鈕,用戶可以取消它,但它不是理想的 –