跨回發存儲字符串數據的最佳方式是什麼?我需要爲多個實體存儲一個ID和名稱。我正在考慮在視圖狀態下使用數據表,但這會使視圖狀態變得太大嗎?我還不能使用數據庫,因爲我將插入一條記錄,這些記錄需要與其他記錄相關聯。所以我會暫時存儲它們,直到用戶提交表單。跨回發存儲狀態
跨回發存儲狀態
回答
實際上您有很多選擇 - 您選擇的選項完全取決於您自己的應用程序的要求。
ViewState - 您可以將數據添加到頁面的視圖狀態。這樣做的好處是,數據將只在用戶在頁面上的一生中存在並將其發回服務器。它比隱藏字段的另一個優點是用戶難以破解它並改變你的值(我相信,事實上,你可以加密你的視圖狀態)。當然,缺點在於頁面大小 - 您添加到視圖狀態的所有內容都是在用戶頁面上丟棄的內容,然後發送回服務器。這使得它不適合存儲大量數據。
餅乾 - 您可以將信息以餅乾的形式返回給用戶。在這種情況下,您可以聲明信息的持續時間 - 用戶瀏覽器的範圍或打開特定的日曆時間。每當用戶點擊該頁面時,該信息將可用於應用程序的任何頁面。壞消息是,你可以存儲的信息量有限,用戶可以很容易地改變他們自己的cookies。
會議 - 你存儲在自己的服務器的內存用戶的信息(我暫時把不同類型的會話存儲的討論)。在這種情況下,只要您的用戶會話處於活動狀態,信息就會存活,並且您的應用程序的所有頁面都可以使用這些信息。用戶不會直接修改這些值,儘管會話劫持是您可能想要探索的風險。它的缺點,不過,是你在這種情況下使用寶貴的服務器資源 - 如果你的應用有一個大的負荷,可能會影響你的可擴展性的未來。
正如我所說 - 你選擇做什麼將完全取決於你的應用程序的需求和要求。
你可以將它們存儲到一個cookie,這將允許你從Javascript訪問它們。或者,您可以將簡單的字符串數組存儲到視圖狀態。很大程度上取決於你希望存儲什麼和多少信息。
幾種方法(雖然不是一個詳盡的清單):
- 的ViewState
- 隱藏字段
- 會議
- 查詢字符串
- 餅乾
的ViewState是罰款。如果您通過回發來存儲它,客戶端解決方案是最好的。所以,你會在某處添加大小 - 無論是在ViewState還是隱藏字段。
如果你想做這個服務器端,你可以使用會話,但記得清理它,當你可以。
當我有這種情況下,我創建了我的領域,我塞進視圖狀態的結構。我可以在頁面大小和生命週期中添加一個小的結構,因爲整個頁面的控件集合已經存在:)
此外,在完成頁面之後,它自行清理完畢,因此不必擔心關於用垃圾填充你的Session。
我同意accepted answer,但我還想補充一點,如果你只是想跟蹤一個簡單的鍵/值集合,你會得到更好的把一個普通的字典到無論是ViewState中或會議:
Dictionary<int, string> myValues = new Dictionary<int, string>();
myValues.Add(1, "Apple");
maValues.Add(2, "Pear");
- 1. 堅持複選框狀態跨回發
- 2. Java存儲狀態
- 3. 跨同一用戶請求存儲狀態
- 4. 通用存儲庫狀態
- 5. 存儲無序狀態
- 6. Angular:DevExtreme DataGrid狀態存儲
- 7. C#存儲泛型狀態
- 8. 在Go中存儲狀態
- 9. 在Android中存儲狀態
- 10. NGRX /存儲狀態更新
- 11. SoftLayer塊存儲狀態
- 12. Asp.Net嚮導存儲狀態
- 13. android跨會話保存會話狀態
- 14. 視圖狀態回發
- 15. 在開發過程中保存redux存儲庫的狀態
- 16. 如何平衡REDX存儲和狀態之間的狀態存儲
- 17. SDN,跨存儲,@GraphProperty返回null
- 18. 從本地存儲獲取價值回到原始狀態
- 19. 經典ASP存儲過程返回狀態
- 20. 如何存儲活動的狀態並檢索回來onResume
- 21. 後臺進程返回的存儲值[不退出狀態]
- 22. 應用程序在返回時不會存儲狀態
- 23. 爲什麼asp.net textbox不會通過回傳存儲狀態?
- 24. chrome存儲:無法從回調函數更改組件狀態
- 25. 如何顯示狀態存儲到TextInput狀態的數值?
- 26. Scrapy蜘蛛不存儲狀態(持久狀態)
- 27. 跨域存儲值
- 28. 存儲TabContainer的ActiveTabIndex回發
- 29. PHP - 如何存儲變量狀態?
- 30. C庫如何存儲狀態變量?
大回答,但我可以要求澄清一件物品嗎?我一直在使用'靜態字符串'來持續回發,但是如果我有兩個不同的用戶同時填寫它們的唯一數據(即名字),他們的記錄會得到相同的名稱,而不是它們的唯一名稱。上述哪一項對每個客戶端來說都是本地化的,並且不受其他客戶端數據的影響仍然存在一些混淆。 Cookies和Session都很好看,但是每個客戶端都有獨特的Cookie?即使他們存儲在「你的服務器自己的內存」中,Sessions對每個客戶端都是唯一的嗎? – FlashTrev 2015-04-01 21:16:26