Why UIWebView work so slowly when loadHTMLString with UIWebView?

匿名 (未验证) 提交于 2019-12-03 01:36:02

问题:

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?

回答1:

If there is nothing heavy to render, then it's possible that all about slow disk operations, that are performing when you're reading your html string.

https://stackoverflow.com/a/3400892/1851930



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!