导航需要时间

时间:2013-11-14 12:49:46

标签: ios

我正在通过点击按钮来浏览我正在加载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] ;

        });
    });           
}

3 个答案:

答案 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)

导航到网页视图时,您正在组合两件事

  1. 加载并显示视图
  2. 从互联网上检索数据
  3. 你只能直接影响第一个,第二个远远超出你的控制范围。

    通过在viewWillAppear方法中执行异步NSURLRequest,您告诉iOS延迟显示视图,直到互联网为您提供所需的所有数据。

    更好的方法是配置新视图的所有可视元素,在界面中显示该视图,然后在新视图可见之后,执行NSURLRequest。

    添加UIActivityIndi​​cator还可以帮助您的用户意识到您的应用是快速响应的,并且他们遇到的延迟来自互联网。

    解决此问题的最简单方法可能是将代码转移到

    - (void)viewDidLoad {}