javascript - 为什么在 Cordova/Phonegap Webkit 浏览器中使用 CSS3 过渡会导致内存泄漏?

标签 javascript css cordova memory-leaks css-transitions

我有一个在 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/

相关文章:

html - PlaceHolderMain 控制硬编码值的 td 宽度

jquery - 位置:固定水平滚动

javascript - 单击事件后表格单元格无意中更改大小

ios - phonegap/apache cordova在iOS上禁用视口(viewport)比例

javascript - 使用 PHP 显示未列出的自动完成搜索结果

javascript - 创建一个文字以将成员应用为函数内的变量

javascript - 使用 jScrollPane 时固定列与表列重叠

javascript - 在应用程序加载之前将数据加载到 vuex 存储中,如何完成?

javascript - Cordova - 操作系统升级后应用程序在 iOS/Android 上崩溃

javascript - Angular2 选择中的模型何时反射(reflect)更改