2010-05-04 204 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