как избежать пиков при загрузке webView

Как вы знаете, приложения для iOS аварийно завершают работу, когда они получают много предупреждений о нехватке памяти в течение короткого промежутка времени... поэтому, чтобы избежать этого, вам следует избегать всплесков. Одним из действий, провоцирующих всплески, является загрузка UIWebView.

Итак, мой вопрос: есть ли решение, позволяющее избежать скачков при загрузке UIWebView?


person Mejdi Lassidi    schedule 22.03.2012    source источник


Ответы (1)


Есть ли решение, позволяющее избежать скачков при загрузке UIWebView?

Не на самом деле нет. Если вы видите всплеск при выделении/инициализации UIWebView, то вы мало что можете сделать. Если ему нужно столько памяти, то ему нужно столько памяти. Его никогда не должно быть так много, чтобы это вызывало проблемы, поскольку внутренности UIWebView должны работать правильно. Если это не так, и вы видите воспроизводимый сбой из-за нехватки памяти, когда вы не должны его ожидать, сообщите об этом на радаре. Очевидно, что если вы загружаете огромное изображение в веб-представление, вы не ожидаете, что оно будет нормально работать на старом устройстве с небольшим объемом оперативной памяти!

person mattjgalloway    schedule 22.03.2012
comment
Итак, я думаю, что единственный способ - это одна из двух вещей: - сделать веб-просмотры таким образом, чтобы не возникало всплесков памяти - реализовать метод didrecieveMemoryWarning, чтобы освободить неиспользуемую память, если она есть. - person Mejdi Lassidi; 22.03.2012
comment
Верно. Вам определенно следует реализовать didReceiveMemoryWarning во всех ваших контроллерах представления. И viewDidUnload. - person mattjgalloway; 22.03.2012
comment
У вас есть примеры, как реализовать метод didReceiveMemoryWarning? Потому что теоретически понятно, да.. но на практике я этого никогда не делал. - person Mejdi Lassidi; 22.03.2012
comment
Вам просто нужно выпустить все, что вы можете создать позже. Например, какое-то состояние, которое вы сохранили. - person mattjgalloway; 22.03.2012