Снова использованный UIWebView, показывающий предыдущее загруженное содержание в течение краткой секунды на iPhone

В одном из моих приложений я снова использую webview. Каждый раз пользователь вводит определенное представление о кэшированных данных перезагрузки к webview использование метода:-

- (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL

и я ожидаю обратного вызова

- (void) webViewDidFinishLoad:(UIWebView *)webView.

Тем временем я скрываю webview и показываю 'загружающуюся' маркировку. Только, когда я получаю webViewDidFinishLoad, делают я показываю webview.

Много раз то, что происходит, я вижу предыдущие данные, которые были загружены в webview в течение краткой секунды перед новыми данными, которые я загрузил, умирает.

Я уже добавил задержку 0,2 секунд прежде, чем показать webview, но он не помог.

Вместо того, чтобы решить это путем добавления большего количества времени к задержке кто-либо знает, как решить эту проблему или возможно ясные старые данные из webview без выпуска и выделения ее каждый раз?

9
задан Deepesh 9 July 2012 в 10:28
поделиться

2 ответа

Во-первых, UIWebView отображает свое содержимое в фоновом потоке. Даже когда вы получаете webViewDidFinishLoad:, он может быть не полностью завершен. Особенно если это ajax-интенсивная страница, пришедшая из сети.

Вы говорите, что скрываете представление. Интересно, означает ли это, что webview полностью задерживает отрисовку. Можно попробовать переместить UIWebView за пределы экрана или заслонить его другим видом. Возможно, это изменит поведение отрисовки.

Если вам не нужен интерактивный UIWebView, то вы также можете рассмотреть возможность сделать его полностью вне экрана в отдельном UIWindow и затем создать изображение из слоя этого UIWebView.

1
ответ дан 4 December 2019 в 10:03
поделиться

Попробуйте загрузить локальный файл, который является пустым или имеет загружаемый рисунок, когда вы его скрываете, вместо того, чтобы просто загружать новое содержимое, когда вы его показываете. Поскольку файл является локальным, он будет быстрым, и даже если загрузка новой страницы займет некоторое время, она будет либо пустой, либо ожидаемой при загрузке.

0
ответ дан 4 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: