2011-02-28 58 views
2

是我的工作有一個ASP.NET web表單頁面會回,不得不ViewState的未壓縮的約88KB的站點。是的,我意識到這是很多ViewState。我觀察到,任何貼文都會導致iPad瀏覽器崩潰並進入iPad主屏幕。雖然頁面上的其他任何鏈接都可以正常工作。帖子後面在iPhone 4上也能正常工作。當我將頁面上的ViewState減少到大約48KB時,崩潰問題就消失了。ASP.NET視圖狀態崩潰的iPad瀏覽器

這是唯一的所有類似的引用這個問題,我發現http://www.devcomments.com/GWT-Obfuscation-crashes-iPad-Safari-browser-at1047668.htm雖然它沒有引用GWT而不是ViewState。

有一些叫了具體的限制,地方與此相關的問題或只是一個無證的錯誤與iPad瀏覽器?

編輯: 有一些更多的時間與一臺iPad,並在網上閱讀一些東西后,它似乎OS關閉Safari瀏覽器,如果它認爲Safari瀏覽器正在被濫用。操作系統認爲Safari使用太多內存或太多CPU,我不確定在Viewstate問題的情況下。我另一個崩潰的問題,根本沒有Viewstate,但是在一個小型XHR之後經常發生崩潰,看起來有些Javascript正在運行,但很難說清楚。在第二種情況下,禁用Javascript可防止Safari崩潰,但也會使頁面無用。

所以我想我的問題仍然是什麼實際的限制是在iPad上的Safari 1以及如何測試人們對這些崩潰的限制?

回答

1

的問題是,當有太多形式的內容被張貼,像一個巨大的視圖狀態,Safari瀏覽器得到由iOS的使用了過多的資源或不能及時響應關閉。我不是iOS專家,但它並不是一個Viewstate問題,它一般是iOS/Safari問題。

-1

依我看它的時間,使開關ASP.Net MVC使用jQuery AJAX。

2

這聽起來像是在iPad上的Safari中的錯誤。

這就是說,這是一個非常多的視圖狀態。你真的需要它嗎?

大錯,在我看來,是MS的決定,以使所有默認視圖狀態。這意味着,如果您在回發中更改文本框的背景顏色,則控件會「記住」它之後的新背景顏色,而無需執行任何操作即可實現此功能。更粗略地說,這意味着您可以爲Windows Forms應用程序獲得更多的編程模型,這對開發人員來說非常簡單。

但有一個代價。 Web應用程序是一個客戶端 - 服務器應用程序。這是從一個應用程序從根本上不同的本地運行,也許是編程模型真的不應在這兩種情況下一樣的...

如果你不知道,如果你確實需要視圖狀態,嘗試禁用它的整個頁面。如果您發現某些特定控件需要它,請爲所有其他控件禁用該控件,爲必須擁有該控件的控件啓用該控件,然後再次啓用該控件。我想你會發現,如果不是所有的大量視圖狀態都被實際上沒有被使用 - 對於除了佔用帶寬以外的其他任何東西。

+0

+1。沒有理由擁有100K的ViewState。由於ViewState,WebForms得到了一個糟糕的說唱。它是一種類似於任何其他工具的工具,可能會被濫用,但默認情況下會爲一代Web開發人員和網站邀請不好的設計決策。 – 2011-02-28 18:33:58