我有一个在 Android 4.0.4 上运行的 Cordova 3.3.1 应用程序,它以 15 秒的间隔循环显示图像。我目前已经实现了一个交叉淡化解决方案,如下所示:http://jsfiddle.net/chaddjohnson/ka9cqdnt/16/ .此解决方案依赖于在同一位置分层的两个图像,并且顶部图像的不透明度每 15 秒从 0 变为 100(反之亦然)。这是应用程序中的唯一页面。
奇怪的是,我发现如果我包含 CSS 转换,Cordova 应用程序将导致设备内存在一个小时内减少,最终应用程序会崩溃。这是我正在使用的 CSS:
.ad-image:last-child {
-webkit-transition: opacity 2s ease-in-out;
transition: opacity 2s ease-in-out;
}
我绝对确定这是导致问题的原因,因为当我只删除这些 CSS 行时,应用程序运行良好,没有内存泄漏。当我重新添加这些行时,内存泄漏又回来了——反复出现。
有谁知道为什么会发生这种内存泄漏?这是一个 Webkit 错误吗?或者可能与我的实现有关(请参阅 jsfiddle)?
最佳答案
好吧,我自己经常遇到这个问题。事实上,我决定禁用每一种效果。特别是页面之间的效果。我认为问题来自 WebView 。如果您使用 android native 代码,android 将管理内存,并且此类问题不会经常发生。当然,您可以做一些事情,例如禁用硬件加速,但请相信我,它仍然不如您想要的好。我的建议是尽可能避免任何不必要的影响。
关于javascript - 为什么在 Cordova/Phonegap Webkit 浏览器中使用 CSS3 过渡会导致内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752721/