我最近問了一個關於存儲數據庫搜索結果的問題,在這個數據庫搜索結果中,我將超過100,000條記錄的數據放入會話對象,然後在另一個頁面上檢索該會話並將其綁定到一個gridview並顯示結果。這顯然不是很好,所以不是這樣做,而是將搜索參數存儲在會話對象中並將其傳遞到結果頁面,然後在該頁面上運行搜索查詢。將類參數放入會話對象中是個好主意嗎?
回答
好多了!只需訪問其他頁面上的Session對象 - 無需「傳遞」任何內容。
這是一個很好的想法,任何其他。如果有限制的特定數量的術語,您可能希望將它們作爲URL的一部分並使用Response.QueryString查詢它們。
我想過這個,但是大概有20個不同的搜索參數。我認爲這對查詢字符串來說太長了。 – Xaisoft 2009-11-11 21:00:57
我認爲這個解決方案更輕巧,適用於大多數場景。但是,有時我遇到了一種情況,我希望大量數據比請求更長,但不一定要將它存儲在會話或應用程序狀態中。
例如,有時用戶運行查詢並獲取他/她查看某些摘要信息的某些結果。那時,他/她只想處理這些結果,而不是在幾秒鐘內運行另一個查詢的結果。有時候這些數據是非常不穩定的,查詢之間甚至很小的時間間隔可能意味着100條記錄和108條記錄之間的差異,或者這些100條記錄與某些狀態X之間的差異,以及相同的100條記錄在稍後時間具有狀態Y.
輸入OODB/RDBMS雜交模式
雖然,這幾方面進行了解決,我想出的最好的方法是使用RDBMS和麪向對象數據庫的混合體,以消除存儲的記憶擴張會話狀態中的記錄。基本上,我將一個db4o數據庫文件放在Web服務器上,並將RDBMS中的記錄讀入對象圖中,然後將此圖保存到db4o中。用戶完成結果後,我從db4o中刪除圖形。利用db4o的透明激活和持久性,它非常出色!
對象數據庫已經解決了很多這樣的問題,甚至當我的應用程序坐落在RDBMS上時,像db4o這樣的庫允許我彌合內存消耗與「壽命更短」(或「更長壽命」)數據之間的差距。
- 1. 將db/schema.rb放入.gitignore列表是個好主意嗎?
- 2. 將srand()放在頭文件中是個好主意嗎?
- 3. 設置一天的會話超時是個好主意嗎?
- 4. 永久會話/第二密碼是個好主意嗎?
- 5. 關閉並頻繁打開hibernate會話是個好主意嗎?
- 6. 散列Python類是個好主意嗎?
- 7. 將我的DataContext存儲在會話內存中是一個好主意嗎?
- 8. Cookie是移動應用中會話管理的好主意嗎?
- 9. 在asp.net會話中存儲DataTable對象的不好主意
- 10. 緩存javax.sql.Datasource對象的單個實例是個好主意嗎?
- 11. 給自己分配一個對象是個好主意嗎?
- 12. 在Objective-C中保留/釋放方法參數是一個好主意嗎?
- 13. 將jdbc連接代碼放在servlet類中是個好主意嗎?
- 14. 將整個代碼寫入ViewController是一個好主意嗎?
- 15. 重新使用ADO.NET命令對象是一個好主意嗎?
- 16. 每個文件的php對象都是好主意嗎?
- 17. 克隆cakephp模型對象是個好主意嗎?
- 18. AS3添加和刪除對象,這是一個好主意嗎?
- 19. 將亞馬遜Dynamo中的對象存儲爲Json是一個好主意嗎?
- 20. 簽名會話cookie。一個好主意?
- 21. 在Javascript中是一個異步類是一個好主意嗎?
- 22. 將數據保存在strings.xml中是一個好主意嗎?
- 23. 將內容訪問邏輯放入BaseController是一個好主意嗎?
- 24. 提取方法參數是一個好主意嗎?
- 25. 將參數包裹在一個對象的函數中是一個壞主意?
- 26. 將所有包含放在一個頭文件中是一個好主意嗎?
- 27. 對String變量執行數學運算是個好主意嗎?
- 28. 在觀察者中訪問會話的好主意嗎?
- 29. 函數返回一個會話對象 - 這樣好嗎?
- 30. 將用戶可定義的類型放入回調原型中是一個好主意嗎?
謝謝,通過「通過」,我真的意味着訪問。只是想得到一些鼓勵。 – Xaisoft 2009-11-11 21:00:17