在webView上加载本地存储的文件时延迟

时间:2016-05-12 06:39:31

标签: javascript ios swift webview

我在我的webView上加载本地存储的html(带有javascript的文件)文件。这些文件已加载到我的ViewController.swift中。但是,第一次启动应用程序时会有2-3秒的延迟。我已经在网上搜索了解决此问题的方法,我观察到的方法(首先加载webView延迟了资源的加载),我决定在NSNotificationCenter中使用ViewController 1}}并从'AppDelegate'调用它们,以便第一次加载webView

在我的代码中实现这些更改后,应用程序的LaunchScreen会出现延迟,这与我在此处加载文件时的预期相同,但是ViewController的加载时间是还是一样。

我打电话给通知 AppDelegate.swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        // Override point for customization after application launch.
        NSNotificationCenter.defaultCenter().postNotificationName("loadDefaultWebViewID",object:nil)


        return true
    }

ViewController.swift

override func viewDidLoad() {
    super.viewDidLoad()

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "loadDefaultWebView:", name: "loadDefaultWebViewID", object: nil)
    if let htmlURL = NSBundle.mainBundle().URLForResource("index", withExtension: "html") {
        let requestObject = NSURLRequest(URL: htmlURL)
        webViewHTML5Player.loadRequest(requestObject)

    }

我希望减少ViewController上的延迟。如果这不是正确的方法,是否还有其他更优化的方法来实现此任务?

修改1

为此,我尝试使用WKWebViewpreferences.javaScriptEnabled = true}和UIWebView,加载时间仍然相同。

1 个答案:

答案 0 :(得分:1)

这是UIWebView中常见的问题。我的观点是最初隐藏Web视图(显示某种"正在加载..."指示符),然后将其隐藏在webViewDidFinishLoad: method中。您也可以参考此链接UIWebView lower loading time with a more efficient wayPreloading webView doesn't work - trying to reduce loading time