【发布时间】:2016-07-04 13:12:29
【问题描述】:
我有一个 UIWebView 应用程序,其中包含本地 HTML 文件&css&js。 在 iOS8 或更早版本中,当我在我的应用程序包中加载 HTML 字符串 50 次以上时,它会正常滚动且不会滞后。 但是在 iOS9 中,当我加载 HTML 字符串 50 次以上时,我的 UIWebView 的滚动视图变得越来越慢。
我也新建了一个项目,只是为了重新加载一个本地的HTML字符串。加载多次(50~100+)后,滚动视图也变慢了。一个URL请求也会导致慢。
这是我的New Proj,你可以在iOS9的设备或模拟器上运行它。它可以重现。但是当你在iOS8中运行它时,一切正常。
- (void)viewDidLoad {
[super viewDidLoad];
UIWebView *wv = [[UIWebView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:wv];
self.webView = wv;
self.webView.delegate = self;
self.request= [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]];
[self.webView loadRequest:self.request];
self.refreshCount = 0;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[self.webView loadRequest:_request];
NSLog(@"refreshCount = %lu",(unsigned long)_refreshCount++);
}
有什么办法吗?
【问题讨论】:
-
嘿@cube 你找到解决这个问题的方法了吗?我遇到同样的行为。为了解决这个问题,我尝试清除缓存,将缓存设置得非常小。有趣的是,它只有在存在触摸事件时才会变慢,而不是在加载或切换页面时。据我所知,触摸处理本身正在阻塞主线程。
标签: html ios objective-c uiwebview