我有一個包含像工作流程那樣的'嚮導'的應用程序,其中用戶編輯大量對象集合,一旦完成,他們可以選擇保存或取消其編輯。考慮到對象的大小,將它們存儲在客戶端並將它們全部絆倒它們是不可行的。相反,我們使用會話狀態來存儲對象,並使用Ajax方法來檢索/編輯它們。大型會話值的智能管理
我的問題是,如果用戶選擇在未完成此工作流程的情況下離開當前頁面,則對象集合會保留在會話中,直到會話過期或用戶再次開始相同的工作流程。鑑於可能有許多併發用戶,並且對象集合可能相當大(即每個用戶大於2MB),我擔心這會導致無用的內存消耗和潛在的性能下降。
當然還有其他方法可用,不使用會話(即寫入臨時表),但是,我想知道是否有一種方法可以智能檢測用戶從控制器導航離開控制器,以便我可以執行一些一些清理(刪除不必要的會話變量)。