WebView缓慢加载

时间:2011-03-18 01:00:33

标签: cocoa macos webview

在cocoa / Mac应用程序中,我使用WebView加载一系列YouTube视频(5)。当它加载时我的整个应用程序锁定大约5秒钟。

我有没有办法加载它,所以它不会冻结应用程序的其余部分?

由于

例如:


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

1 个答案:

答案 0 :(得分:1)

不幸的是,除了主线程外,你无法渲染WebView。这是班级的基本限制。我会开始研究为什么你的页面渲染这么长时间。我的预感:Javascript或插件。

我通常喜欢使用Safari来查看它是否存在相同的问题。您可以将HTML文件拖到Safari上以轻松加载它。如果Safari显示相同的问题,那么您可以使用Safari的开发工具对其进行分析。 (首选项,高级,菜单栏中的“显示开发”菜单。)

如果Safari没有问题,那实际上是好的,因为这意味着你的问题肯定是可以解决的(如果Safari可以做到,你应该能够实现同样的目的)。以下是一些可以试用的内容:

  • 仪器。试着看看WebView正在花时间。首先关注主线程的“所有样本”。这通常是导致应用程序挂起的原因。
  • 简化。尝试从webview中删除内容,尤其是javascript,直到找到导致问题的部分。
  • 实施WebResourceLoadDelegate方法以查看哪个部分似乎导致了问题。由此提供的信息可能具有误导性,因为它与下载内容时有关,而不是在呈现内容时,但它可以让您了解页面中的位置。