我正在通过点击一个按钮导航到一个视图控制器,在那里我正在加载webview,但在单击按钮后,它需要一些时间,如何更快地导航和加载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] ;
});
});
}发布于 2013-11-14 20:55:22
试试这段代码
-(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] ;
});
});
}发布于 2013-11-14 20:57:09
如果我理解你的问题,你可以做的不多,如果更快的话。请求速度是基于网速的(你对网速没有太大的控制能力)。
而且请求已经异步发生了,所以不需要自己去做。
发布于 2013-11-14 21:26:37
当您导航到您的webview时,您组合了两件事
加载和显示internet数据
你只能直接影响第一个,第二个是你无法控制的。
通过在viewWillAppear方法中执行异步NSURLRequest,您可以告诉iOS延迟显示视图,直到internet为您提供了所需的所有数据。
更好的方法是配置新视图的所有可视元素,在界面中显示该视图,然后在新视图可见后执行NSURLRequest。
添加一个UIActivityIndicator也可以帮助你的用户意识到你的应用是快速响应的,而他们所经历的延迟是来自互联网。
也许解决这个问题的最简单方法是将您的代码移到
- (void)viewDidLoad {}https://stackoverflow.com/questions/19978089
复制相似问题