【问题标题】:Multiple loading of webpages in webview is slower在 webview 中多次加载网页速度较慢
【发布时间】:2012-03-17 14:10:12
【问题描述】:

我正在开发一个示例 iPad 应用程序,其中我在 UIWebview 中显示一些网页,代码工作正常。但我认为网页需要太多时间才能加载到 UIWebview。我的代码如下:

-(void)createWebView
{

    //******************** First Webview*********

    firstWebView=[[UIWebView alloc]init];
    firstWebView.frame=CGRectMake(10, 50, 350, 470);
    firstWebView.delegate=self;
    firstIndicator = [[UIActivityIndicatorView alloc] 
                                        initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    firstIndicator.center = CGPointMake(160, 240);
    firstIndicator.hidesWhenStopped = YES;
    [self.firstWebView addSubview:firstIndicator];
    [firstIndicator startAnimating];
    firstWebView.backgroundColor=[UIColor grayColor];
     NSURL *firstUrl = [NSURL URLWithString:@"http://www.techtree.com"];
     NSURLRequest *firstRequestObj = [NSURLRequest requestWithURL:firstUrl];
    [firstWebView loadRequest:firstRequestObj];
    [self.view addSubview:firstWebView]; 

    //******************* Second Webview*********

    secondWebView=[[UIWebView alloc]init];
    secondWebView.frame=CGRectMake(405, 50, 350, 470);
    secondWebView.delegate=self;

    secondIndicator = [[UIActivityIndicatorView alloc] 
                      initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    secondIndicator.center = CGPointMake(160, 240);
    secondIndicator.hidesWhenStopped = YES;
    [self.secondWebView addSubview:secondIndicator];
    [secondIndicator startAnimating];
    secondWebView.backgroundColor=[UIColor grayColor];

    NSURL *secondUrl = [NSURL URLWithString:@"http://www.facebook.com"];
    NSURLRequest *secondRequestObj = [NSURLRequest requestWithURL:secondUrl];
    [secondWebView loadRequest:secondRequestObj];
    [self.view addSubview:secondWebView]; 


    //****************** Third Webview************

    thirdWebView=[[UIWebView alloc] init];
    thirdWebView.frame=CGRectMake(10, 528, 350, 470);
    thirdWebView.delegate=self;


    thirdIndicator = [[UIActivityIndicatorView alloc] 
                       initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    thirdIndicator.center = CGPointMake(160, 240);
    thirdIndicator.hidesWhenStopped = YES;
    [self.thirdWebView addSubview:thirdIndicator];
    [thirdIndicator startAnimating];

    thirdWebView.backgroundColor=[UIColor grayColor];

    NSURL *thirdUrl = [NSURL URLWithString:@"http://www.yahoo.com"];
    NSURLRequest *thirdRequestObj = [NSURLRequest requestWithURL:thirdUrl];
    [thirdWebView loadRequest:thirdRequestObj];
    [self.view addSubview:thirdWebView];

    //***************** Fourth Webview************
    fourthWebView=[[UIWebView alloc] init];
    fourthWebView.frame=CGRectMake(405,528, 350, 470);
    fourthWebView.delegate=self;


    fourthIndicator = [[UIActivityIndicatorView alloc] 
                      initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    fourthIndicator.center = CGPointMake(160, 240);
    fourthIndicator.hidesWhenStopped = YES;
    [self.fourthWebView addSubview:fourthIndicator];
    [fourthIndicator startAnimating];

    fourthWebView.backgroundColor=[UIColor grayColor];

    NSURL *fourthUrl = [NSURL URLWithString:@"http://stackoverflow.com"];
    NSURLRequest *fourthRequestObj = [NSURLRequest requestWithURL:fourthUrl];
    [fourthWebView loadRequest:fourthRequestObj];
    [self.view addSubview:fourthWebView];


    //******************** Memory Managemt **********
    [firstWebView release];
    [secondWebView release];
    [thirdWebView release];
    [fourthWebView release];


}

那么我怎样才能让它更快,请指导我。

【问题讨论】:

  • 需要多少时间?您是否将实现的性能与在 Safari 中加载 4 个不同页面所需的时间进行比较(我们应该假设这将是最佳性能)。根据我的经验,将内容加载到 WebView 中比我想要的要慢,即使内容是本地 HTML。你所做的一切看起来都很复杂或错误。因此,您应该在 Safari 中进行一些性能测试,以确保您正确设定了对可能发生的事情的期望。
  • 那么我是否必须为此使用 NSOperationQueue 或任何线程?

标签: iphone ipad uiwebview


【解决方案1】:

为此,您必须使用 NSPertaionQueue 或 GCD 队列是另一种选择

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    相关资源
    最近更新 更多