正在ViewState或会话状态中存储数据集



当前我正在ViewState中存储数据集,但这可能会对页面的性能产生影响。

你能建议我是否可以使用Session或ViewState,或者任何不影响性能的替代方案吗?

为什么需要存储整个数据集?如果必须的话,那就在会话中进行。如果您的会话是"inproc",则数据集对象将存储在内存中(由于没有序列化,因此可以节省一些性能)。

如果我是你,我会分析代码,尽量不将整个数据集存储在两个会话中,而不是viewstate中——必须有一种方法来优化你的代码。

希望能有所帮助。

如果你想存储整个数据集,总是有Caching方法可以让你以良好的性能存储巨大的变量。以下是如何将变量存储到Cache中的示例。

Cache["CacheItem1"] = "Cached Item 1";

这是如何检索变量后:

string cachedString;
cachedString = (string)Cache["CacheItem"];

将数据集存储在视图状态或会话中是不明智的,但在这两者中,将其存储在会话中肯定比视图状态更好。从那时起,序列化/反序列化在服务器上进行处理。而不是将序列化的数据也发送到客户端。

因为我认为存储在会话中可能会对您有所帮助,但您需要考虑以下要点

  1. 有多少用户在使用您的应用程序
  2. 数据集的大小是多少?如果它更多,那么不要将其存储在会话中

我建议你根据自己的需求,如果可能的话,你可以在缓存中存储,但这是应用程序级别的。作为会话每个用户都有自己的会话。

你可以查看以下链接

  1. 会话V/s视图状态

最新更新