加载webView 内存泄露 导致内存暴涨的几种解决方案
2016-01-05 15:37
459 查看
加载webView导致内存泄露的原因是:Html中的js代码会引起内存泄露
解决这个问题的方法是在webViewDidFinishLoad方法中设置如下:
***************
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"];//自己添加的,原文没有提到。
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitOfflineWebApplicationCacheEnabled"];//自己添加的,原文没有提到。
[[NSUserDefaults standardUserDefaults] synchronize];
***************
或者你可以使用wkwebView
优点: 加载速度 比UIWebView提升差不多一倍的, 内存使用上面,反而还少了一半。
缺点: WKWebView 不支持缓存 和 NSURLProtocol 拦截了
我建议如果对缓存不高的页面可以使用,用户体验会提高很多。
解决这个问题的方法是在webViewDidFinishLoad方法中设置如下:
***************
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"];
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"];//自己添加的,原文没有提到。
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitOfflineWebApplicationCacheEnabled"];//自己添加的,原文没有提到。
[[NSUserDefaults standardUserDefaults] synchronize];
***************
或者你可以使用wkwebView
优点: 加载速度 比UIWebView提升差不多一倍的, 内存使用上面,反而还少了一半。
缺点: WKWebView 不支持缓存 和 NSURLProtocol 拦截了
我建议如果对缓存不高的页面可以使用,用户体验会提高很多。
相关文章推荐
- c语言内存泄露示例解析
- IE下使用jQuery重置iframe地址时内存泄露问题解决办法
- android WebView组件使用总结
- 解决video标签在安卓webview下无法自动播放问题
- Android webview与js交换JSON对象数据示例
- Android App调试内存泄露之Cursor篇
- android中WebView和javascript实现数据交互实例
- Android的webview支持HTML5的离线应用功能详细配置
- js内存泄露的几种情况详细探讨
- Javascript 闭包引起的IE内存泄露分析
- Android开发之WebView组件的使用解析
- Android中实现Webview顶部带进度条的方法
- 深入解析PHP垃圾回收机制对内存泄露的处理
- PHP脚本内存泄露导致Apache频繁宕机解决方法
- 容易造成JavaScript内存泄露几个方面
- 关于js内存泄露的一个好例子
- 总结JavaScript在IE9之前版本中内存泄露问题
- Android中访问证书有问题的SSL网页的方法
- 基于Android中Webview使用自定义的javascript进行回调的问题详解
- Android编程实现WebView自适应全屏方法小结