在webView上加载本地存储的文件时延迟
我在我的webView
上加载本地存储的html(带有javascript的文件)文件。 这些文件加载到我的ViewController.swift
。 但是,第一次启动应用程序时会有2-3秒的延迟。 我已经在网上搜索了解决这个问题的方法,我观察到的方法(首先加载webView
延迟了资源的加载),我决定在我的ViewController
使用NSNotificationCenter
并从’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
我尝试过使用WKWebView
( preferences.javaScriptEnabled = true
WKWebView
preferences.javaScriptEnabled = true
)和UIWebView
,加载时间仍然相同。
这是UIWebView
常见的问题。 我的观点是最初隐藏Web视图(显示某种“Loading …”指示符),然后将其隐藏在webViewDidFinishLoad: method
。 并且您可以使用更有效的方式引用此链接UIWebView更低的加载时间并且预加载webView不起作用 – 尝试减少加载时间