预加载webView不起作用 - 尝试减少加载时间

时间:2013-08-27 12:26:38

标签: ios xcode webview loading

我有一个带有webView的viewController,我在这里显示一个本地的html文件。

问题是加载前需要几秒钟,因此我试图避免这段等待时间。

到目前为止,我认为最好的方法如下: 一进入主页面,我就会开始将文件加载到webView中,这样当我将使用webView进入infoViewController时,它已经被加载了。

以下是代码:

//mainViewController.m:

tempInfo = [[InfoViewController alloc]initWithNibName:@"InfoViewController" bundle:nil];

[tempInfo.webView123 loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"About" ofType:@"htm"]isDirectory:NO]]];
tempInfo.test =@"test";

正如您所看到的,我还添加了一个测试变量,当我进入infoViewController时,未加载webView但测试变量更改了值。这意味着它传递的是测试变量的值,但它没有将html文件加载到webView中。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我假设您使用的是iOS。

WebView并不便宜,而且作为SDK的一部分提供的WebView不如本机Safari窗口那么好。

修改变量的原因是loadRequest是异步的。

您实际上是在要求Webview启动&从寒冷中加载您的页面。该页面在将来的某个点完成加载。您可以通过实施适当的委托方法来了解何时。

您可能想尝试的一些事情。

如果您的视图控制器是单击(使用和丢弃),请尝试在initWithNibName中加载请求,并将网页视图置于viewDidLoadviewWillAppear

中的层次结构中

通过加载一个非常简单的“Hello World”文本文件来确定它是否是您的页面。如果简单文件花费的时间少得多,那么您的页面可能需要进行一些优化。

使用页面加载委托方法

– webViewDidStartLoad:

– webViewDidFinishLoad:

– webView:didFailLoadWithError:

要确定您对“未加载”页面的假设是否正确。

祝你好运。