我正在通过点击按钮来浏览我正在加载webview的viewcontroller,但是点击按钮后需要一些时间,如何更快地导航并加载webview更快,请帮助。我只有以下代码在第二视图控制器。
-(void)viewWillAppear:(BOOL)animated{
self.navigationController.navigationBarHidden=YES;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://myurl"]];
dispatch_async(dispatch_get_main_queue(), ^{
[self.wb loadRequest:request] ;
});
});
}
答案 0 :(得分:0)
试试此代码
-(void)viewWillAppear:(BOOL)animated{
self.navigationController.navigationBarHidden=YES;
dispatch_queue_t jsonParsingQueue = dispatch_queue_create("jsonParsingQueue", NULL);
// execute a task on that queue asynchronously
dispatch_async(jsonParsingQueue, ^{
NSURLRequest *request=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://myurl"]];
dispatch_async(dispatch_get_main_queue(), ^{
[self.wb loadRequest:request] ;
});
});
}
答案 1 :(得分:0)
如果我理解你的问题,那么你可以做的很快就能做得更快。该请求速度基于互联网速度(您没有太多控制权)。
此外,请求已异步发生,因此无需自行完成。
答案 2 :(得分:0)
导航到网页视图时,您正在组合两件事
你只能直接影响第一个,第二个远远超出你的控制范围。
通过在viewWillAppear
方法中执行异步NSURLRequest,您告诉iOS延迟显示视图,直到互联网为您提供所需的所有数据。
更好的方法是配置新视图的所有可视元素,在界面中显示该视图,然后在新视图可见之后,执行NSURLRequest。
添加UIActivityIndicator还可以帮助您的用户意识到您的应用是快速响应的,并且他们遇到的延迟来自互联网。
解决此问题的最简单方法可能是将代码转移到
- (void)viewDidLoad {}