【发布时间】:2012-02-22 15:56:24
【问题描述】:
目前我将 DataSet 存储在 ViewState 中,但这可能会影响页面的性能。
您能否建议我是否可以使用 Session 或 ViewState 或任何不影响性能的替代方法?
【问题讨论】:
标签: asp.net session viewstate state-management
目前我将 DataSet 存储在 ViewState 中,但这可能会影响页面的性能。
您能否建议我是否可以使用 Session 或 ViewState 或任何不影响性能的替代方法?
【问题讨论】:
标签: asp.net session viewstate state-management
为什么需要存储整个数据集? 如果必须,请在会话中进行。如果您的会话是“inproc”,则数据集对象将存储在内存中(您可以节省一些性能,因为不会有序列化)。
如果我是你,我会分析代码并尽量不在两个会话中存储整个数据集,而不是视图状态 - 必须有一种方法来优化你的代码。
希望对你有帮助。
【讨论】:
如果你想存储整个数据集,总有缓存方法可以让你以良好的性能存储巨大的变量。这是一个如何将变量存储到缓存中的示例。
Cache["CacheItem1"] = "Cached Item 1";
这是如何在之后检索变量:
string cachedString;
cachedString = (string)Cache["CacheItem"];
【讨论】:
将数据集存储在视图状态或会话中是不明智的,但在两者中,将其存储在会话中肯定比视图状态更好。从那时起,序列化/反序列化在服务器上处理。而不是将序列化的数据也发送给客户端。
【讨论】:
我认为在会话中存储可能会对您有所帮助,但您需要考虑以下几点
我建议你看你的需求,如果可能的话,你可以存储在缓存上,但它是应用程序级别的。 as Session 每个用户都有自己的会话。
您可以查看以下链接
【讨论】: