WebView медленная загрузка - PullRequest
1 голос
/ 18 марта 2011

В приложении какао / Mac я использую WebView для загрузки серии видео YouTube (5).Когда оно загружается, мое приложение блокируется на 5 секунд или около того.

Есть ли способ загрузить его, чтобы оно не зависало в остальной части приложения?*

Например:

<code>
[[webView mainFrame] loadHTMLString:html baseURL:[NSURL URLWithString:@"http://youtube.com"]];

1 Ответ

1 голос
/ 18 марта 2011

К сожалению, вы не можете визуализировать WebView, кроме как в основном потоке.Это основное ограничение класса.Я бы начал исследовать, почему ваша страница так долго рендерилась.Моя догадка: Javascript или плагин.

Я обычно хотел бы начать с использования Safari, чтобы увидеть, есть ли у него такие же проблемы.Вы можете перетащить HTML-файл в Safari, чтобы легко его загрузить.Если Safari показывает ту же проблему, вы можете использовать инструменты разработки Safari для ее профилирования.(Предпочтения, Дополнительно, Показать меню «Разработка» в строке меню.)

Если у Safari нет проблем, это на самом деле хорошо, потому что это означает, что ваша проблема определенно решаема (если Safari может это сделать, вам следуетудалось добиться того же).Вот несколько вещей, которые стоит попробовать:

  • Инструменты.Попробуйте посмотреть, что WebView занимает свое время.Сосредоточьтесь сначала на «все образцы» для основного потока.Обычно это приводит к зависанию приложения.
  • Упрощение.Попробуйте убрать что-то из веб-просмотра, особенно javascript, пока не найдете фрагмент, вызывающий проблему.
  • Реализуйте методы WebResourceLoadDelegate, чтобы увидеть, какой фрагмент вызывает проблему.Информация, представленная этим, может вводить в заблуждение, поскольку она связана с тем, когда что-то загружается, а не с тем, когда они отображаются, но это может дать представление о том, где на странице вы зависаете.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...