[英]'Caching' a large table in ASP.NET
我了解每次刷新頁面(尤其是在“ AjaxLand”中)都會導致從頭開始調用我的后端/代碼隱藏類……這是一個問題,因為我的類(它是System.Web.UI中的成員對象) .Page)包含從數據庫中獲取的大量數據。 因此,現在AjaxLand中的每個頁面刷新都使我進行大型后端DB調用,而不僅僅是重用內存中的類對象。 有什么解決辦法嗎? 這是會話變量起作用的地方嗎? 會話變量是我必須在鏈接到單用戶和單會話實例的內存中保留對象的唯一選擇嗎?
既然您提到Ajax,我想您可能要考慮以下幾點:
假設這個大數據集是靜態的而不是暫時的,在第一次調用Ajax時,您的應用程序查詢數據庫,檢索大量數據並返回到客戶端(即,在瀏覽器上運行的瀏覽器/ JavaScript等),現在是客戶端已經將所有這些存儲在內存中。 隨后,無需再返回服務器以獲取客戶端已在內存中存儲的相同數據。 您需要做的是使用JavaScript重建DOM或其他任何內容。 從那時起,所有工作都可以在客戶端上完成。
現在假設數據不是靜態的而是瞬態的,那么通過將數據放置在服務器上來緩存會話絕對不是您想要的解決方案。 每次客戶端向服務器發送請求時,服務器僅返回高速緩存(會話)中的內容,則數據已經過時,並且與客戶端內存中的數據沒有任何區別。
關鍵是,如果數據是靜態的,則在內存中已有數據之后,將往返行程保存到服務器。 如果數據是瞬態的,恐怕除了以某種方式重新查詢或重新檢索數據並將所有內容發送回客戶端之外,沒有廉價的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.