2010-05-04 93 views
6

是否有可靠的方法在任何给定的回发中查看视图状态的大小?ASP.NET - 查看状态大小

+1

你想查看它在服务器上,还是在客户端的页面? – 2010-05-04 22:06:04

+0

没有偏好 - 我只是想知道多少额外的垃圾来回传递。 – 2010-05-06 14:56:09

回答

7
  1. 在web.config中启用跟踪。
  2. 浏览应用程序http:////Trace.axd
  3. 在“控制树”部分中,总结控件的ViewState大小和控件状态大小。
11

我会推荐使用名为“ViewState Size”的FireFox插件。快速,简单和方便。

alt text

https://addons.mozilla.org/en-US/firefox/addon/5956/

+0

这真的很有用。唯一的缺点是它目前不兼容Firefox 4和Ajax调用(在UpdatePanels内) – 2011-04-07 13:56:28

+0

适用于Firefox 21.虽然没有测试过AJAX。 – 2013-06-25 15:08:37

1

您有几种选择:

  • 使用跟踪
  • 使用浏览器插件
  • 将代码添加到您的项目中提取的视图状态的大小

我发现这篇文章非常有用“Determining an ASP.NET Page's View State Footprint”,它涵盖了上面提到的选项。

然而,当我需要查看我被引入的应用程序的视图状态大小等时,我最终要做的是使用名为“ASP.NET ViewState Helper”的工具。 我喜欢的工具是我可以将它作为独立的可执行文件运行,不需要安装插件,也不需要更改代码。

缺点是,它只适用于IE浏览器,但在我的情况下,这很好。

3

有时跟踪可能会过度。您可以将此JavaScript添加到页面中快速查看ViewState在您单击时如何增长。

<script type="text/javascript"> 
    alert('Viewstate is now ' + $('#__VIEWSTATE').val().length + ' bytes.'); 
</script> 
+0

我已经把它放在了一个小小的TamperMonkey脚本中,以保持对它的关注 - 可能对其他人有帮助(虽然本身并不是一个完整的答案):http://uber-rob.co。uk/2016/05/monitoring-viewstate-size/ – 2016-05-19 13:43:27

+0

我使用上面相同的jQuery技术,而不是在警报中的代码,我使用F12工具控制台命令行,只需键入:'$(“input [id = __ VIEWSTATE ] [式=隐藏]“)VAL()长度;”。并回车。它比编写警报更专门一些,特别是如果你不容易访问源html。 – 2016-06-01 22:14:31