2010-05-22 137 views
0

我試圖找到持久對象或在代碼中稍後使用相同對象的最佳方法。所以,我創建了一個對象,然後將其重定向到另一個需要使用該對象中的變量的頁面(表單)。該表單被提交給第三方,並且在他們的最後完成了一些工作,然後他們在我的應用程序上請求一個運行更多代碼並再次需要對象變量的頁面。ASP.NET中的持久對象

  • 我想過數據庫,但這一切都一次完成。這是在用戶結帳過程中完成的,並且在結束之後,沒有理由再次檢索該對象。因此,從數據庫中添加和檢索似乎是過度殺毒,我認爲這會使進程變慢。
  • 現在我使用的會議,但我一直聽說,不要使用,但沒有一個真正的意思,爲什麼我不應該,除了它是不好的做法。
  • 我無法真正使用回發值,因爲這些頁面不能這樣工作。結帳過程從一個dll代碼開始,該代碼重定向到提交給第三方的表單,並且第三方請求該頁面。
  • 開始閱讀關於緩存對象,但我還沒有使用過,但我還不確定。

所以,我真的不知道的最好的方式。什麼是所有選項,並且每個人都推薦什麼作爲最佳方式?

回答

1

如果使用會話,會話超時,你失去的數據。用戶將不得不重新開始。此外,所有數據被遊逛,直到20分鐘,用戶離開該頁面後,默認情況下

在數據庫中堅持這是不壞,和記錄以後可以給你有用的審計跟蹤數據。

緩存對象是全局高速緩存,所以它不是針對任何特定的用戶。應用程序域中的任何用戶或頁面都可以訪問該數據。您可以使用用戶名,以保持它,但我認爲該數據庫是一個更好的選擇

+0

與DB的另一個問題是,對於檢查出每一個用戶,他們會在數據庫中的記錄。它可能是成千上萬的記錄,我甚至不需要在結賬後再次訪問這些值。我必須在完成後刪除記錄。這不像是一個腰部? – user204588 2010-05-22 16:29:23

+0

如果用戶停止請求頁面並且等待20分鐘後纔會話纔會過期。這一切都在結帳過程中發生,所以我不認爲我會在這一點上失去會話。 – user204588 2010-05-22 16:33:52

+0

取決於你想要什麼。如果你不需要它,爲什麼存儲一條記錄然後刪除它會是一種浪費?你甚至可以將一些數據轉移到審計表並丟棄其餘部分。 如果您將大量數據放入會話變量中,則用戶將離開該頁面20分鐘之前,將所有內容都掛在Web服務器上。 – 2010-05-22 18:02:38