2012-11-26 3 views
0

내 APP에 약 10 초 ~ loadHTMLString 걸립니다. 문제의 원인을 누가 지적 할 수 있습니까?UIWebView로 loadHTMLString을 사용할 때 UIWebView가 너무 느리게 작동하는 이유는 무엇입니까?

- (void)updateJournalView:(NSArray *)journals { 
    NSString *descHtml = [self getHtmlDesc:journals]; 
    [webView loadHTMLString:descHtml baseURL:nil]; 
} 

getHtmlDesc 방법은 신속하게 HTML 문자열을 반환합니다 : 나는 메시지를 수신하는 경우,보기를 입력 한 후

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

.

로드 로그에서로드하는 데 약 5 초가 걸릴 수 있습니다.

2012년 11월 26일 20 : 34 : 35.322 테스트 [8456 : C07] ==== 시작 부하 2012년 11월 26일 12시 34분 35초 +0000 :

2012년 11월 26일 20 : 34 : 39.890 테스트 [8456 : C07] ==== 마무리 부하 2012년 11월 26일 12시 34분 39초 +0000 :

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

나 줘하세요 다음

는 UIWebViewDelegate 방법 loadHTMLStringUIWebView 일 때 왜 그렇게 느린가요?

+0

있는 ScrollView에 웹보기를 추가하지 마십시오. 가시적 인 webView 크기로 내용을 표시하려면 WebView가 자동으로 ScrollView를 사용하여 내용을 나타냅니다. – iDhaval

답변

0

아무 것도 렌더링하지 않으면, html 문자열을 읽을 때 수행되는 느린 디스크 작업이 모두 가능할 수 있습니다. 웹보기 기본이있는 ScrollView 포함되어 있기 때문에

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

관련 문제