快速替换图像 src 时 Firefox 中的内存使用情况
Memory usage in Firefox when rapidly replacing image src
我正在尝试通过每 100 毫秒替换一次图像的 src 来使用 Javascript 实现动画 PNG。它显示得很好,但我发现当让它在 Firefox 上运行时,它会逐渐消耗越来越多的内存。
这是我用来播放动画的循环,尽管我认为它没有什么了不起的——
self.next = function() {
if(self.doPlay == true) {
self.currentFrame++;
if(self.currentFrame >= self.numFrames) {
self.currentFrame = 0;
self.doPlay = self.doLoop;
}
}
if(self.doPlay == true) {
image.src = self.frames[self.currentFrame].src;
setTimeout( self.next, self.frameDelays[self.currentFrame]);
}
}
(其中帧是预加载图像对象的数组)
如果我注释掉 src 中的更改,内存使用很好。否则,内存使用量将无限期攀升,直到浏览器最终崩溃。
我尝试从 DOM 中删除和替换图像,而不是更改 src(在原版和 jQuery 中),但它似乎没有帮助。
有人知道更好的方法吗?
感谢您抽出宝贵时间:)
你有没有想过只使用图像并更改背景中的滚动?它真的很快,值得推荐
看这个
http://willian.nerdti.com.br/botaoImagem.html
这不是对这个问题的回答,而是另一个评论(我不能离开,因为我的 StackOverflow 声誉目前不是 50)。 无论如何,我注意到上面的人(在评论部分)说这是一个可笑的坏主意。 对于这种特定情况,他可能是对的,但是这种内存泄漏以一种完全出乎意料的方式在我们的应用程序中抬头(并导致我们完全放弃 FireFox)。
基本上,我们的应用程序有一个左侧导航栏,其中包含我们组织中各种人员的小头像。 这个左侧导航栏可以过滤、排序、更新等。 这个栏(有时)可以包含几百张图像,每次洗牌时,FireFox 会丢失 500K 到 1MB 的剪辑,而 IE9/10、Chrome 和 Safari 不会丢失任何东西。
因此,在修复此错误之前,FireFox(对于我们的内部应用程序)不再是一个可行的选择。
- 用嵌套函数和默认函数定义函数
- 用程序搜索JQuery数据表中的文本
- ExtJS 5用程序点击actioncolumn gridview
- 如何更改<svg>标记为<img>用js标记
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- 用Javascript更改我网站上的字体大小
- 用与线条相同的颜色填充多折线图上的点
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 用空格替换下划线PHP
- 用我的json数据填充JQuery DataTable
- 用我的代码防止内存泄漏
- 用javascript计算内存使用情况
- 用JavaScript重新创建一个函数需要多少内存
- 用javascript(服务器端)将大型CSV文件转换为JSON数组:处理内存不足问题
- 在没有赋值的情况下用var在JavaScript中声明变量会消耗内存吗
- javascript和video-js在所有浏览器中的内存泄漏(用最简单的例子)
- 用文档创建元素.createElement留在内存中
- 用mozilla rhino编写Java脚本和内存管理问题
- ANDROID METAIO -我需要用javascript从我的应用程序中读取手机内存中的文件
- 浏览器一直在用AJAX + setInterval消耗内存