2011-09-17 30 views
0

我記錄了一些基於用戶點擊我的網站的分析數據。當一個人點擊某個東西時,它會通過ajax調用向我的節點應用程序發送一個調用,但是如果他們點擊的是外部鏈接,原始請求會在他們離開該網站後被取消。即使在客戶端斷開連接後,節點是否有處理請求的好方法?用戶關閉瀏覽器後Node.js是否可以繼續運行?

回答

3

如果正在運行的進程不需要寫入響應,那肯定沒關係。
即使這樣,它可能不會無論如何,如果你這樣做

  1. 用戶沒關係提交請求時,你回答「感謝名單,啓動了作業」。在響應之前,異步執行作業(並不難,因爲node.js代碼應該是是異步開始的)。

  2. 作業將數據放入某個表或文件或nosql存儲中。

  3. 用戶可以轉到其他網址查看作業及其狀態列表(已啓動,正在運行,已完成)並查看結果。

+0

看着我的node.js代碼,我等待在我的數據存儲在數據庫後發回響應。我會盡快發送迴應,並看到它有幫助。 – Clint

+0

@clint - 是的,但請確保以異步方式*開始數據處理。如果你不確定如何做到這一點,請更新你的問題,包括你的過程的細節和你嘗試的,或者只是開始一個新的問題 – hvgotcodes

+0

這絕對是一個異步調用來存儲我的數據在數據庫中。在節點中很難做到異步:-)我認爲問題可能是客戶端Ajax調用甚至在瀏覽器切斷它之前甚至沒有將其添加到節點。我會做更多的測試並回來。 – Clint

相關問題