【问题标题】:Storing DataSet in ViewState or Session State在 ViewState 或 Session State 中存储 DataSet
【发布时间】:2012-02-22 15:56:24
【问题描述】:

目前我将 DataSet 存储在 ViewState 中,但这可能会影响页面的性能。

您能否建议我是否可以使用 Session 或 ViewState 或任何不影响性能的替代方法?

【问题讨论】:

    标签: asp.net session viewstate state-management


    【解决方案1】:

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

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

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

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

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

      这是如何在之后检索变量:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          我建议你看你的需求,如果可能的话,你可以存储在缓存上,但它是应用程序级别的。 as Session 每个用户都有自己的会话。

          您可以查看以下链接

          1. Session V/s Viewstate

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-02-16
            • 2014-07-30
            • 1970-01-01
            • 2010-10-06
            • 1970-01-01
            • 2019-10-15
            相关资源
            最近更新 更多