我的網絡應用程序必須處理並提供大量數據才能顯示特定頁面。有時,用戶在服務器仍在忙於處理頁面時關閉或刷新頁面。這意味着服務器將繼續處理數分鐘的數據,只將其發送給不再監聽的客戶端。http服務器能檢測到客戶端已經取消了他們的請求嗎?
是否有可能檢測到連接已斷開並對其作出反應?
在這個特定的項目中,我們使用Django和NginX,或者Apache。我認爲這是可能的,因爲Django開發服務器通過打印Broken Pipe異常來對已取消的請求做出反應。我很想讓它引發我的應用程序代碼可以捕獲的異常。 It appears JSP can do this。 So can node.jshere。
或者,我可以在有問題的頁面上註冊卸載事件處理程序,讓它執行一個同步XHR,請求取消該用戶的先前請求,並進行某種進程間通信以實現此目的。也許,如果較慢的數據處理都交給了另一個進程,我可以更容易地識別和殺滅,而不殺死響應過程...
我認爲無狀態是正確的無字連字,:) – jerjer 2010-04-16 10:16:10
@jerjer - 感謝您的更正:) – Oded 2010-04-16 10:17:16
這似乎很奇怪,因爲TCP應該能夠做到這一點。我想有些東西在抽象中會丟失。 – 2010-04-16 10:20:01