我读过您可以做到的,但这是否真的可以提高页面的性能,还是会带来更多的性能开销?

最佳答案

Viewstate数据是有关页面的信息,该信息已加密并序列化为页面上的隐藏标签。

如果您可以将其存储在会话中,则可能是一些问题/陷阱:


信息仍然必须从内存中进行加密/解密和序列化/反序列化
如果您有很多用户,并且会话数据存储在进程中甚至使用状态服务器,那么您将使用ViewState数据最大化这些服务器上的内存。
如果您使用SQL Server进行会话状态,这显然会变得更糟(请参见下文)。


如果您可以将其存储在SQL Server中,则可能是一些问题:


同样,信息仍然必须进行序列化/反序列化(由于未输出到页面,因此不必进行加密/解密),但是在这种情况下,必须从SQL DB进行读取/写入。从/向数据库读取/写入数据库时​​,与数据库之间的传输和与数据库的I / O都将产生开销。

关于c# - 在 session 或数据库中存储Viewstate的陷阱有哪些,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/808392/

10-13 07:39
查看更多