It take about 10s to loadHTMLString
in my APP, who can point out what's the problem?
- (void)viewDidLoad { [super viewDidLoad]; webView = [[UIWebView alloc]initWithFrame:CGRectMake(10, 10, SCREEN_WIDTH, 480)]; [webView setBackgroundColor:[UIColor clearColor]]; [webView setOpaque:NO]; webView.delegate = self; [scrollView addSubview:webView]; }
After enter the view, If I receive message:
- (void)updateJournalView:(NSArray *)journals { NSString *descHtml = [self getHtmlDesc:journals]; [webView loadHTMLString:descHtml baseURL:nil]; }
getHtmlDesc
method will return the html string quickly.
from load log, you can see it take about 5s to load.
2012-11-26 20:34:35.322 test[8456:c07] ====start load 2012-11-26 12:34:35 +0000:
2012-11-26 20:34:39.890 test[8456:c07] ====finish load 2012-11-26 12:34:39 +0000:
Following is UIWebViewDelegate method:
- (void)webViewDidFinishLoad:(UIWebView *)aWebView { CGRect frame = aWebView.frame; frame.size.height = 1; aWebView.frame = frame; CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero]; frame.size = fittingSize; aWebView.frame = frame; scrollView.contentSize = CGSizeMake(SCREEN_WIDTH, fittingSize.height); NSLog(@"====finish load %@:", [NSDate date]); } - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = [request URL]; if ([[url scheme] isEqualToString:@"redirect"] && [[url host] isEqualToString:@"opp_detail"]) { NSString *oppIdStr = [[url path] stringByReplacingOccurrencesOfString:@"/player_id=" withString:@""]; if (oppIdStr && [oppIdStr length]) { NSNumber *oppId = [NSNumber numberWithInt:[oppIdStr intValue]]; if ([oppId intValue] != gcontext.me.id) { [screenNav gotoOppDetailScreen:[oppId intValue]]; } } } return YES; } - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = [request URL]; if ([[url scheme] isEqualToString:@"redirect"] && [[url host] isEqualToString:@"opp_detail"]) { NSString *oppIdStr = [[url path] stringByReplacingOccurrencesOfString:@"/player_id=" withString:@""]; if (oppIdStr && [oppIdStr length]) { NSNumber *oppId = [NSNumber numberWithInt:[oppIdStr intValue]]; if ([oppId intValue] != gcontext.me.id) { [screenNav gotoOppDetailScreen:[oppId intValue]]; } } } return YES; } - (void)webViewDidStartLoad:(UIWebView *)webView{ NSLog(@"====start load %@:", [NSDate date]); }
Please give me a hand, why it is so slow when loadHTMLString
with UIWebView
?