iOS 9上UIWebView的主要性能损失

7
我已经将我的问题简化到一个非常简单的场景,似乎与iOS 9+和具有许多页面加载(例如您从导航中获取的内容)的UIWebView有关。
我按照这个教程(http://conecode.com/news/2011/05/ios-tutorial-creating-a-web-view-uiwebview/)构建了一个简单的iOS应用程序,并将UIWebView指向一个静态HTML,看起来像底部的内容。
然后,我使用按钮(或自动执行的脚本)刷新页面,最终应用程序变得越来越慢(通常在50-80次刷新左右)。我在页面中列出了列表以进行演示,因为它允许您滚动,这样可以更早地发现问题。
请帮助我或指导我解决这个问题的方向?
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<FORM><INPUT id="demo" TYPE="button" onClick="history.go(0)" VALUE="refresh"></FORM>
    <ul data-role="listview" >
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
                <li>This is an Item</li>    
    </ul>
    <script>
        var elem = document.getElementById("demo");
        elem.value = Date();
        location.reload();
    </script>    
</body>
</html>

我通过在我的应用程序中加入一个hack来解决了我的问题,以跟踪页面加载的数量,并在任意数量的加载后卸载控件并重新添加它。为了使用户体验无缝,还需要一些额外的操作。但本质上这是一种hack而不是正确的做法。 - XenoPuTtSs
请查看此问题:https://github.com/kirbysayshi/vash/issues/72 或许能有所帮助。 - Muhammad Zohaib Ehsan
1个回答

2
可能是内存问题。在运行项目并重新加载/导航UIWebView时,请观察Xcode中的内存报告(双击放大)。

enter image description here

如果它在增长,请尝试删除UIWebViews缓存。 清除UIWebview缓存

虽然我没有像你的截图那样看到内存增加,但这确实有助于我的测试应用程序的性能。 - XenoPuTtSs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接