加载/卸载HTML5 时,iOS Safari内存泄漏
我开发了一个带有几个UIWebView的iPad应用程序,它采用以下HTML和JavaScript。 由于iPad一次只能播放一个video,因此在特定的网络视图聚焦之前,我不会加载video。
这是通过在UIWebView上调用stringByEvaluatingJavaScriptFromString方法,调用JS方法getFocus()来完成的 。 同样,当不再需要Web视图时,我调用lostFocus()来卸载video。 这使另一个UIWebView可以播放另一个video。
到现在为止还挺好。 一切都很完美。 除了一件事: 这会导致内存泄漏。 每当观看
我已经尝试重新加载UIWebView(而不是用JS卸载video),这不起作用。 我还尝试了大量不同的JavaScript变体,标签变体等等。
var movieDiv = document.getElementById('videoDiv'), movieHtml = '<video id="video" src="../Documents/" width="768" height="911">'; var gotFocus = function () { movieDiv.innerHTML = movieHtml; var movie = document.getElementById('video'); movie.play(); movie.addEventListener('pause', function () { movie.currentTime = 0; movie.play(); }, false); }; var lostFocus = function () { movieDiv.innerHTML = ''; };
我终于解决了这个! 解决方案是清空src并“加载”不存在的video。 这不会导致内存泄漏。 看一看: