当前我正在ViewState中存储数据集,但这可能会对页面的性能产生影响。
你能建议我是否可以使用Session或ViewState,或者任何不影响性能的替代方案吗?
为什么需要存储整个数据集?如果必须的话,那就在会话中进行。如果您的会话是"inproc",则数据集对象将存储在内存中(由于没有序列化,因此可以节省一些性能)。
如果我是你,我会分析代码,尽量不将整个数据集存储在两个会话中,而不是viewstate中——必须有一种方法来优化你的代码。
希望能有所帮助。
如果你想存储整个数据集,总是有Caching方法可以让你以良好的性能存储巨大的变量。以下是如何将变量存储到Cache中的示例。
Cache["CacheItem1"] = "Cached Item 1";
这是如何检索变量后:
string cachedString;
cachedString = (string)Cache["CacheItem"];
将数据集存储在视图状态或会话中是不明智的,但在这两者中,将其存储在会话中肯定比视图状态更好。从那时起,序列化/反序列化在服务器上进行处理。而不是将序列化的数据也发送到客户端。
因为我认为存储在会话中可能会对您有所帮助,但您需要考虑以下要点
- 有多少用户在使用您的应用程序
- 数据集的大小是多少?如果它更多,那么不要将其存储在会话中
我建议你根据自己的需求,如果可能的话,你可以在缓存中存储,但这是应用程序级别的。作为会话每个用户都有自己的会话。
你可以查看以下链接
- 会话V/s视图状态