2012-03-17 4 views
1

Я разрабатываю пример iPad-приложения, где я показываю некоторые веб-ссылки в UIWebview, код работает правильно. Но я думаю, что веб-страницы занимают слишком много времени, чтобы загрузить их в UIWebview. код выглядит следующим образом:Несколько загрузок веб-страниц в webview медленнее

-(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]; 


} 

Так как я могу сделать это быстрее, пожалуйста, направляйте меня.

+0

Сколько времени это везет? И сравниваете ли вы эффективность своей реализации с временем, необходимым для загрузки 4-х разных страниц в Safari (что мы должны считать, это лучшая производительность). По моему опыту, загрузка содержимого в WebViews происходит медленнее, чем я хотел бы, даже если контент является локальным HTML. Ничто из того, что вы делаете, выглядит очень сложным или неправильным. Поэтому вы должны сделать некоторые тесты производительности в Safari, чтобы убедиться, что вы правильно определили свои ожидания относительно того, что возможно. – janoside

+0

Так что я должен использовать NSOperationQueue или Any threading для этого? – user1227928

ответ

0

Для этого вы должны использовать NSOpertaionQueue или НОД очередь является еще вариантами