2009-06-22 6 views
1

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

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

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

ответ

-2

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

+0

Симулятор работал на моем ноутбуке, который использовал то же соединение WiFi, что и мой телефон. – 2009-06-22 06:29:00

+2

ваш симулятор также имеет намного более быстрый процессор и потоки ОЗУ. –

+0

симулятор использует ваши ресурсы ноутбука для загрузки, но устройство ipad использует свои собственные ресурсы, такие как RAM и сетевое подключение. – CKT

2

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

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

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

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

0

Несколько пунктов.

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