UIWebview работает медленно на устройстве iPhone, быстро на симуляторе - PullRequest
1 голос
/ 22 июня 2009

Я загружаю веб-страницу с внешнего сервера, используя UIWebView. Страница загружается очень медленно. Используя Edge, это занимает ~ 30 секунд. Использование WiFi занимает ~ 5-6 секунд. Эта же страница намного быстрее при загрузке напрямую через Safari.

В симуляторе UIWebView очень отзывчив.

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

Ответы [ 3 ]

2 голосов
/ 22 июня 2009

UIWebView просто медленно загружается по сравнению с чем-либо еще, даже при использовании простого статического HTML. UILabel всегда намного быстрее.

Я думаю, это связано с тем, что некоторые аспекты движка HTML, которые вам могут не понадобиться (например, интерпретатор Javascript), загружаются некоторое время. Но даже если вы сохраняете уже созданный экземпляр UIWebView, загрузка нового контента все равно заметно замедляется.

Одной из возможностей может быть сохранение UIWebView в фоновом режиме и получение от него изображения для отображения - тогда вы избежите задержки отображения. Это может привести к поломке и вставке, и, возможно, не сработает, в зависимости от того, как UIWebView, не отображаемый на дисплее, выглядит как рендеринг.

Статический HTML с загрузками JSON, вероятно, примерно так же быстро, как вы собираетесь получить. На 3Gs это может даже не сильно заметить задержку.

0 голосов
/ 01 июня 2013

Несколько баллов.

  1. Симулятор - это чисто API-симулятор, а не эмулятор. Это означает, что он использует всю мощь вашего Mac и просто следит за тем, чтобы API работал так же. Производительность на вашем Mac никак не связана с мобильным устройством.
  2. Компонент UIWebView основан на WebKit, но это более старая и худшая версия той, которая включена в Safari. UIWebView всегда будет работать хуже, чем Safari.
0 голосов
/ 22 июня 2009

Это потому, что симулятор использует ваше широкополосное соединение.

...