我将使用 Javascript 文件加载图像的 HTML 文件加载到 WebView。每次当我将 html 文件加载到 Web 视图时,它都会显示活动监视器中增加了一些内存。甚至,当我释放 Webview 时,它也不会释放内存。
我没有缓存 Webview 中的资源。但是,当我使用仪器分析内存时,它显示图像资源缓存在内存中,没有被释放。
我试图在 Safari 浏览器中加载相同的 HTML 文件,我发现了相同的行为。
谁能指导我在哪里失踪?如何优化 WebView 的内存加载?
不要使用 Activity Monitor 来分析应用程序中的内存性能。
使用Instruments应用程序及其提供的各种与内存相关的工具,例如分配和泄漏。然后,您将能够确定您的应用程序是否真的泄漏。
更多输入我如何尝试避免在 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;
}
我希望我做正确的事情来避免缓存。请给出你的想法。