2012-04-23 56 views
2

我加载了使用JavaScript文件将图像加载到WebView的HTML文件。每当我将HTML文件加载到Web视图时,它都会显示活动监视器中增加的一些内存。甚至,当我释放Webview时,它也不释放内存。将图像加载到Webview + Safari时内存不断增加

我没有在Webview中缓存资源。但是,当我使用仪器来分析内存时,它显示我的图像资源被缓存在内存中,不会被释放。

我试图在Safari浏览器中加载相同的HTML文件,我发现了相同的行为。

任何人都可以请指导我失踪的地方吗?我如何优化内存加载到WebView?

回答

1

不要使用Activity Monitor来分析应用程序中的内存性能。

使用Instruments应用程序及其提供的各种与内存相关的工具,例如分配和泄漏。然后,您将能够确定您的应用程序是否真正泄漏。

+0

感谢Rob的快速回复。正如我所提到的,我使用过仪器,并且从那里只有我知道当WebView加载到WebView时,WebView占用内存。 – user1351584 2012-04-24 06:54:20

0

更多输入我如何尽量避免在WebView中进行缓存。

我正在使用下面的一段代码来删除缓存。

[[NSURLCache sharedURLCache] setMemoryCapacity:0]; 
    [[NSURLCache sharedURLCache] setDiskCapacity:0]; 


    WebPreferences *the_pPrefs = [m_pWebView preferences]; 
    [the_pPrefs setCacheModel:WebCacheModelDocumentViewer]; 
    [the_pPrefs setUsesPageCache:NO]; 
    [m_pWebView setResourceLoadDelegate:self]; 

即使我在下面的委托方法中处理资源加载请求。

- (NSURLRequest *)webView:(WebView *)sender 
      resource:(id)identifier 
    willSendRequest:(NSURLRequest *)aRequest 
    redirectResponse:(NSURLResponse *)redirectResponse 
     fromDataSource:(WebDataSource *)dataSource 
{ 
     NSURL * url = [aRequest URL]; 
     NSURLRequest * cachelessRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:100]; 
     return cachelessRequest; 
} 

我希望我做正确的事情,以避免缓存。请给你的想法相同。