我正在构建一个混合Android应用程序,打开一个webview,在其中创建和删除iframe。
作为内存优化的一部分,我只隔离了iframe的创建和删除,发现iframe没有在webview中发布,而在浏览器中它运行良好。
我做了两次以下测试。 首先,在Chrome浏览器(Chrome v39)上。 其次,在谷歌Nexus 4(KitKat 4.4)上。
测试:
这些是 Chrome浏览器:
中显示的结果创建并销毁iframe并恢复正常(除了额外的JS堆)
这些是 Nexus 4 webview :
中显示的结果正如您所看到的,当iframe被释放时,文档仍处于活动状态(红线)以及一些未发布的节点
这是我用来打开网页视图的一段代码:
webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new MyWebViewClient());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
String url = getIntent().getExtras().getString("url");
Log.w(getClass().getSimpleName(), "Loading url: " + url);
webView.loadUrl(url);
导致差异的原因是什么?我应该如何从webview中清除iframe?