相关疑难解决方法(0)

如何提高UIWebView滚动性能?

我正在构建一个UIWebView包含大量图像,CSS,嵌入式视频和JavaScript tap处理程序的应用程序.滚动表现很糟糕,我正在寻找有效改善这种情况的方法.

如果以下任何特征导致延迟UIWebView滚动?还有哪些其他因素可能阻碍绩效?

  • 图像数量
    • 我应该在用户滚过它们时从DOM中删除图像,如果它们向上滚动则将它们添加回来吗?
  • 图像大小
    • Web视图中的Retina质量图像是否会比较小版本影响滚动性能?
  • 图像缩放
    • 提前调整图像大小会产生很大的不同,而不是依赖于Web视图来根据声明进行扩展width: 100%;吗?
  • CSS
    • 我已经避免了box-shadow,但是还有其他CSS属性,这些属性也会对滚动性能产生负面影响吗?

如果有任何其他资源或工具可用于分析,我很乐意听到它们.

performance scroll webkit uiwebview ios

14
推荐指数
3
解决办法
9123
查看次数

uiwebview和巨大的记忆丧失

我在使用UIWebViews时遇到了问题,我在这里看到了同样的问题,但没有有用的答案.问题在于:UIWebView内存管理.我会引用它:

我正在开发一个大量使用UIWebView的应用程序.这个应用程序在从我的服务器加载内容时动态生成大量的UIWebViews.其中一些UIWebView非常大,并且有很多图片.

如果我使用仪器检测泄漏,我没有检测到任何泄漏.但是,分配了很多对象,我怀疑这与UIWebViews有关.

当webviews因不再需要而发布时,似乎并非所有内存都被释放.我的意思是,在向我的服务器发出请求后,该应用程序创建了一个UITableView和许多webview(仪器说大约8Mb).当用户点击时,所有这些都被释放但内存使用量仅下降约2-3 Mb,使用该应用程序5-10分钟后它崩溃.

我创建了简单的测试应用程序并获得了相同的结果.

这是一个tableView,我正在创建这样的DetailsView:

DetailsVC *detailViewController = [[DetailsVC alloc] initWithNibName:@"DetailsVC" bundle:nil];
detailViewController.n = indexPath.row;
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
Run Code Online (Sandbox Code Playgroud)

在DetailsVC中,我在IB中创建了一个webView.我加载像这样的HTML:

    NSString *urlAddress;
if (self.n == 0)
{
    urlAddress = @"http://www.google.com";
}
else 
{
    urlAddress = @"http://www.yahoo.com";
}

NSURL *url = [NSURL URLWithString:urlAddress];

NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

[self.webView loadRequest:requestObj];
Run Code Online (Sandbox Code Playgroud)

我也这样做:

- (void)viewDidUnload {
self.webView = nil;
}
Run Code Online (Sandbox Code Playgroud)

就是这样,每次我在RootViewController中选择任何webView时,我都会丢失2-3 Mb的内存,这个问题是否有解决方案?

谢谢.

memory iphone memory-management uiwebview

10
推荐指数
1
解决办法
6097
查看次数