2013-04-29 43 views
0

我們的應用程序幾乎每頁都有幾個過濾器。我目前的目標是實現一種機制來存儲過濾器,並在用戶重新打開頁面時預先選擇它們,因此至少在一次會話期間,用戶在打開頁面時不會一次又一次地選擇它們,或者從一個頁面頁面到頁面。如何在會話中更好地存儲來自客戶端的過濾器

的應用程序編寫與ASP.NEt MVC和我們使用了大量的JavaScript來處理過濾。目前僅在客戶端進行大量過濾(例如,檢索網格的完整數據,並且僅在客戶端上進行所有進一步過濾)。

我想這些步驟:

  • 基類控制器:方法獲取數據從common.js的方法來發送和會話中保存它。
  • 共同JS:到common.js添加了一個方法,它接受由用戶做出的選擇,以及與頁面的控制和名稱的名稱一起將其發送到服務器Method1中,以便存儲在新的選擇會話對象。用於控制器
  • 基類:方法2接受控制器的名稱,頁面的名稱,並檢索會話對象。
  • 單個頁面的JS:在onload事件中指定所有現有過濾器並從Method2獲取數據。

但是,我不知道,這個解決方案是普遍的和最佳的。

而且我不想推倒重來。此任務是否有任何現有的解決方案或模式?或者有什麼想法可以做得更好?

回答

0

我想到的一種方法是使用Cookie而不是會話,因爲它只是部分,您可以從JavaScript本身讀取Cookie。它將保存服務器資源,因爲您不會在會話中保存任何內容。如果您的選擇標準不是很敏感,不應該有任何安全問題

+0

感謝您的想法!這聽起來很合理,但我認爲我們會堅持會話,因爲我們希望將選擇數據存儲在數據庫中,以便用戶在另一臺機器上打開網站時可以使用他的過濾器。 – Anelook 2013-04-29 09:05:14