Как улучшить производительность прокрутки UIWebView? - PullRequest
2 голосов
/ 30 октября 2010

Кажется, действительно трудно улучшить производительность UIWebView, особенно для таких сайтов, как Mashable или Ars Technica, где загружаются тонны скриптов и распространены длинные многостраничные статьи.

Мне известны 3 похожих вопроса, но у них обоих нет рабочего решения:

Интересно, есть ли какие-нибудь решения этой проблемы? Любые предложения приветствуются.

Ответы [ 3 ]

6 голосов
/ 05 ноября 2010

Боюсь, что нет.Большие веб-сайты остаются большими и, следовательно, потребляют много памяти.

Я бы поспорил с Брэдом Ларсоном: технически возможно резервирование веб-просмотра в собственном CATiledLayer (просто сделайте [webView.layer renderInContext: ]), но это не имеет большого смысла,Плиточные слои загружаются лениво, как и веб-представления.Вам понадобится огромное количество точно настроенного кода, чтобы определить, когда страница закончила загрузку, затем кэшировать вещи в ваш плиточный слой и т. Д.

Несмотря на это, веб-просмотр на самом деле довольно оптимизирован.Я бы даже сказал, что это одна из лучших вещей во всей iOS.Это наиболее часто используемый компонент, критичный к производительности, на всей платформе.Каждый многострочный текст является веб-представлением (например, UITextView реализован с использованием их).Если на каком-то веб-сайте веб-сайт перестает работать, вам будет довольно сложно его ускорить.

В некоторых случаях может также работать другое решение, но только если вы ищете что-то особенное.Если нет, то оставьте свои руки подальше и потратьте время где-нибудь еще.Только мои 2 цента ...

1 голос
/ 29 ноября 2010

Некоторые приложения веб-браузера, такие как iCab и Atomic Web Browser, по-видимому, используют метод _setDrawInWebThread: и, очевидно, они разрешены в магазине приложений.Если они не используют этот метод, то они используют что-то, что идентично этому, для их UIWebView.Кто-нибудь знает наверняка, Apple отклоняет приложения, которые используют этот частный API?Могут ли они позволить этому пройти "молча"?Я удивлен, что Apple до сих пор не сделала этот API общедоступным, потому что любое приложение, которое использует UIWebView для отображения веб-страницы (и есть много приложений высокого профиля, которые делают это, например, FlipBoard), делает устройство «нестабильным»'и подпаритет, выполняющий ...

1 голос
/ 05 ноября 2010

Я действительно не знаю, может ли это помочь или является точным, учитывая вопрос, но вот что я должен сказать:

Некоторые свойства, такие как тень или градиент, и даже изображения внутри WebView влияют намного спектаклей, которые вы можете получить.Старайтесь не использовать их и / или сохранить их как можно меньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...