2010-08-09 116 views
2

每當我加載大於2MB的html文件,我的應用程序崩潰。網頁的大小有多大?我怎麼能不會崩潰我的應用程序(部分加載?)UIWebview大小限制

回答

9

當加載HTML的2MB的UIWebView中具有消耗大量的內存來創建一個DOM和所有的控件/圖形/等等。實際顯示該頁面。限制不是HTML大小,而是顯示它所需的內存量。在活動監視器模擬器中運行它,看看內存消耗

Xcode Instruments: peak RAM of iPhone apps running in Simulator?

你需要打破你的網頁或者找到另一種方式做標記,使內存更小。請注意,如果您需要創建相同的頁面,那麼製作較小的HTML可能無濟於事。

+0

從內置的Safari應用程序加載頁面似乎沒問題。他們的伎倆是什麼? – Yazzmi 2010-08-09 12:17:45

+0

然後,您必須確保不會以其他方式泄漏內存。你真的有一個只有一個UIWebView指向HTML的應用程序,它崩潰了嗎?或者還有其他可能導致它的事情發生。 – 2010-08-09 12:35:37

3

我敢打賭,你忽略了發送到你的UIWebView的UIViewController子類的內存警告。

取消註釋-(void)didReceiveMemoryWarning並從那裏發出一些NSLog消息。你可能會看到手機瘋狂地試圖引起你對低內存條件的關注。而當你沒有通過降低內存使用來回應時,它會殺死你。

你想在這種方法做的是免費的你持有到任何資源 - 圖像,數據的大口吃等

+0

如何在UIWebView中釋放資源? – Yazzmi 2010-08-13 07:33:46

+0

這是一個很好的問題。這是你的所有應用程序是由?有沒有其他的數據結構,你正在瀏覽或保留的圖像?如果沒有,我想你讓UIWebView管理自己。它也會響應低內存事件。如果有人知道更好,我也有興趣知道答案。 – 2010-08-13 12:00:52