代码之家  ›  专栏  ›  技术社区  ›  Eugene

UIWebview在iPhone设备上很慢,在模拟器上很快

  •  1
  • Eugene  · 技术社区  · 15 年前

    我正在使用UIWebView从外部服务器加载网页。页面加载非常慢。使用Edge,大约需要30秒。使用WiFi,大约需要5-6秒。当直接通过Safari加载时,同一页面的速度要快得多。

    在模拟器中,UIWebView非常灵敏。

    有没有人有过提高UIWebView性能的经验?我的一个想法是使用静态HTML页面和图像,并用JSON加载/填充数据单元。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Kendall Helmstetter Gelner    15 年前

    与其他任何东西相比,即使使用简单的静态HTML,UIWebView的加载速度也很慢。UILabel总是快得多。

    我认为这是因为您可能不需要HTML引擎的某些方面(比如Javascript解释器)需要一些时间来加载。但是,即使您保留一个已经创建的UIWebView实例,加载新内容的速度仍然明显较慢。

    一种可能是在后台保留一个UIWebView,并从中获取一个图像来显示,这样就可以避免显示延迟。但这会破坏剪切和粘贴,并且可能不起作用,这取决于不在显示中的UIWebView的渲染效果。

    带有JSON加载的静态HTML可能与您将获得的速度一样快。在3Gs上,它甚至不会有明显的延迟。

        2
  •  0
  •   rooftop    11 年前

    有几点。

    1. 模拟器纯粹是一个API模拟器,它不是一个模拟器。这意味着它使用了Mac的全部功能,并确保API的行为方式是相同的。Mac电脑的性能与移动设备没有任何关系。
    2. UIWebView组件是基于WebKit的,但它是Safari中包含的一个旧的、更糟的版本。UIWebView的性能总是比Safari差。
        3
  •  -3
  •   Geoff    15 年前

    那是因为模拟器正在使用你的宽带连接。