我正在开发一个大量使用多个 UIWebViews 的 iOS 应用程序。所有请求都是从应用程序包中的本地 html 文件加载的。我在这里找到了尝试防止内存泄漏的绝妙技巧:http: //www.codercowboy.com/code-uiwebview-memory-leak-prevention
我要做的是创建一个包含 3 个 UIWebView 实例的池的工厂类,并且任何时候请求 UIWebView 时,它都应该从该池中请求一个实例。因此,除非遇到内存警告,否则我将永远不会释放 WebViews,如果需要,我可能会释放 WebViews。
这是我到目前为止所想到的,并且正在寻找任何关于我的建议的额外提示或评论。
- 一旦池已满,就必须重用 WebView。它将是先进先出类型的堆栈。
- 一旦请求重用 webview,它将执行 HTML 实现中定义的 destroy 方法以清空全局变量。这可以使用 UIWebView 的 stringByEvaluatingJavascriptFromString 来完成
- 完成后,WebView 将执行 document.innerHTML = ""; 清除文档。
- 然后重用的 UIWebView 将加载新的请求。
- 听说使用多张图片会占用大量内存。当池中的 UIWebView 不在屏幕上时,用小图像替换所有标签源是否有益?
在这里感谢任何输入!
谢谢,弗格尔。