2013-05-28 38 views
0

用戶上載excel表單時,會觸發一個可能需要一些時間的過程:表單被保存(快速),然後進行處理(需要一段時間並與客戶機保持獨立通信)。之後,返回一個視圖。MVC:你離開 - 我停下來或:你離開 - 我不在乎?

如果用戶上傳文件並立即關閉瀏覽器,會發生什麼情況。觸發的過程是否會繼續,直到發現它沒有人將視圖返回給?

我想一旦進程被觸發,服務器不知道/關心客戶端是否仍然活動,直到下次服務器與客戶端進行通信時,服務器纔會繼續工作。但我不確定..並感謝您對這個新手問題的意見!

+4

不想給你太多的困難時間 - 這似乎是一個非常容易的事情嘗試... – Paddy

+0

問題是:做_you_照顧?你想知道處理過程仍然很忙,或者已經完成或失敗了嗎?如果是這樣的話,或許一個單獨的文件處理服務是可取的,這與消防和遺忘相反,我們會看到發生了什麼。 – CodeCaster

回答

0

即使客戶端刷新並上傳新文件(舊請求仍在運行),該過程仍將繼續。小心,它可能是衝突的來源!

0

可能是一個不同的問題,而不是回答,但是如果用戶厭倦了等待非常緩慢的響應並開始錘擊刷新,從而重新提交,例如,你會怎麼做?

一般來說,處理這個問題的一個好方法是分離慢速進程以運行異步,然後返回給客戶端,客戶端然後可以輪詢進度。

0

很容易自己嘗試。

但是,由於HTTP是無狀態的,因此Web服務器無法安全地檢測到瀏覽器已關閉。

但是,如果您確實想檢測瀏覽器保持打開狀態,則可以在實際處理完成時使用Web套接字或長輪詢請求。