UIWebView加载网页内存占用过高
来源:互联网 发布:点阵字体编辑软件 编辑:程序博客网 时间:2024/06/04 18:29
在使用UIWebView去加载网页的时候,注意过的同学都会发现,内存占用瞬间暴增,并且在页面dealloc之后,内存仍未释放,导致app占用内存过大。查阅资料,发现是因为HTML里的js导致了内存泄漏,每次打开一个链接就会把“WebKitCacheModelPreferenceKey”设置为1。以下是个人尝试过的解决方案:
1、如果工程需要兼容到iOS8.0之前,webview遵循代理,并在代理方法中做如下处理:
- (void)webViewDidFinishLoad:(UIWebView *)webView {
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@”WebKitCacheModelPreferenceKey”]; // clear 一下UIWebView的NSURLCache
}
在使用这个方法的时候,虽然内存没有像之前那样暴增,但相对也并没有达到预期的效果,后来尝试了方法2,非常完美的解决了内存的问题。
2、如果工程是兼容到iOS8.0及以后的,建议使用WKWebView,具体形式如下:
首先导入#import<WebKit/WebKit.h>
初始化WKWebView,并遵循代理navigationDelegate
- (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecifiedWKNavigation *)navigation {
[[NSUserDefaultsstandardUserDefaults] setInteger:0forKey:@"WebKitCacheModelPreferenceKey"];
[[NSUserDefaultsstandardUserDefaults] setBool:NOforKey:@"WebKitDiskImageCacheEnabled"];
[[NSUserDefaultsstandardUserDefaults]setBool:NOforKey:@"WebKitOfflineWebApplicationCacheEnabled"];
[[NSUserDefaultsstandardUserDefaults] synchronize];
}
在使用WKWebView的时候,完美的解决了问题,在加载网页的时候几乎没有大的内存变化,页面退出之后,内存也顺利释放,perfect。- UIWebView加载网页内存占用过高
- UIWebView内存占用过高、崩溃、内存溢出
- UIWebView内存占用过高、崩溃、内存溢出
- UIWebView内存占用过高、崩溃、内存溢出
- UIWebView内存占用过高、崩溃、内存溢出
- svhost占用内存过高
- win7物理内存占用过高
- Firefox内存占用过高解决方法
- Mysql内存占用过高解决方法
- QT程序占用内存过高
- svchost.exe占用内存过高
- svchost.exe占用内存过高
- MySql 内存占用过高 解决办法
- Firefox内存占用过高解决方法
- 使用UIWebView加载网页
- UIWebView 加载网页
- UIWebView加载https网页
- UIWebView加载网页
- Bootstrap3 轮播之个人学习笔记
- Java 中>>和>>>的区别
- 大牛博客集合
- react打包过程遇到的问题
- 图的深度优先遍历
- UIWebView加载网页内存占用过高
- iOS开发NSString篇:字符串每隔几个字符插入某个字符
- curl验证,调用webservice接口
- 夜神模拟器和hbuilder连接
- Java将数据写入word文档(.doc)
- 【剑指offer】题43:n个骰子的点数
- mui轮播图片
- java连接hive
- cocopods 异常处理