cocoa - WebView加载缓慢

标签 cocoa macos webview

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

有没有办法加载它,这样它就不会卡住应用程序的其余部分?

谢谢

例如:


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

最佳答案

不幸的是,除了在主线程上之外,您无法渲染 WebView。这是该类的基本限制。我将开始调查为什么您的页面需要这么长时间才能呈现。我的预感:Javascript 或者插件。

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

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

  • 仪器。尝试看看 WebView 正在花时间做什么。首先关注主线程的“所有样本”。这通常是导致应用挂起的原因。
  • 简化。尝试从 Web View 中删除某些内容,尤其是 JavaScript,直到找到导致问题的部分。
  • 实现WebResourceLoadDelegate方法来查看哪一部分导致了问题。由此提供的信息可能会产生误导,因为它与下载内容的时间有关,而不是呈现内容的时间,但它可以让您了解您悬卡在页面中的位置。

关于cocoa - WebView加载缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5346970/

相关文章:

swift - 使用 PDFOutline 将 TOC 添加到 Swift/Cocoa 中的 PDFDocument

android - Intent putExtra,NullPointerException

Android WebView 平滑滚动

javascript - Android加载外部本地javascript文件到WebView中

macos - 沙盒环境中基于 SQLite 的 NSPersistentDocument

macos - 以编程方式关闭 OS X 10.7 Lion 的 "auto-correct"功能?

objective-c - 可以拖放文件 URL 文本,但不能拖放实际文件

c++ - 编写跨平台程序

运行Mac应用程序的C程序

c - C语言,TCP服务器和客户端