2010-04-21 68 views
4

我有一個顯示用戶統計信息的頁面,這不能被緩存,因爲每個用戶都有不同的統計信息,因此需要進行實時查詢。如何避免在ASP.NET中快速刷新頁面?

當用戶點擊F5刷新或在短時間間隔內提出不同的查詢時,避免數據庫服務器超載的方法是什麼?

回答

2

我認爲@Jens A.在一半的地方 - 這是一個完美的案例,用於緩存,計算統計數據,將它們粘貼到緩存中,並且只有在它們不在緩存中時才計算它們。通過將到期時間設置爲適當的值(5分鐘,更少?),統計數據仍然是合理的最新數據,並且將在合理的情況下更改(更新),而不必每次都計算頁面是否持續刷新。

+0

好吧,當我做一個查詢時,我會從會話和幾個控件(如日期和名稱)傳遞幾個參數。我將創建帶有4個參數的緩存結果集,如userID,date1,date2和name ...這不可能是imho。 – eugeneK 2010-04-21 07:34:39

+1

不,你用'UserID'作爲唯一參數緩存值;這樣,如果任何用戶在5分鐘內刷新,他將獲得緩存的統計信息,並且每個用戶只有在密鑰過期後才能強制重新計算。您的緩存基本上充當用戶請求的速率限制器。 – tzaman 2010-04-21 07:48:59

2

您可以將生成的統計數據存儲在您的數據庫中一段時間​​,如果再次請求統計數據,只顯示舊值。

+0

你是什麼意思?統計數據以呈現給用戶的方式存儲。我需要一種方法來避免來自ie的用戶。在短時間內通過某些詞進行過濾。如果我將數據庫中的每個結果集保存下來,這張表就會成爲瓶頸.. – eugeneK 2010-04-21 07:31:23