- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我们开发了一个 Web 应用程序,它在带有表格的有点花哨的界面中显示了相当多的数据。我无法显示该页面,但它有一个很大的表格,在一个固定定位的元素内,有一些图像(主要是小于 2KB 的图标,具有 alpha 透明度的 PNG,以及不超过 30 个不同的图像)。
它不是那么重,页面中的元素不到 1000 个。它主要在 Chrome 中开发,并且在 Chrome 中完美运行。还有 IE11 和 IE10。
但是当谈到 IE9 时,这 发生了: 是的,那是 IE11,因为它提供了不错的分析工具。我正在使用 IE9 仿真,但同样的无响应发生在 IE9 模式下的 IE10 和“原生”IE9,CPU 使用率高 - 但内存使用率稳定。
以更轻松的方式,它也发生在 IE8 中: 但是重绘花费的时间少得多(也许它重绘了页面的较小部分?)并且响应能力没有受到影响。
如您所见,没有脚本在运行,只是一些随机垃圾收集。在 IE10、IE11 和 Chrome 中,不涉及重绘。
如果我禁用图像(在 IE10 中这样做,不知道如何在 IE11 中这样做),IE9 不会继续重绘,但是如果我禁用或隐藏所有图像它不断占用 CPU 的样式表。正如预期的那样,禁用硬件加速会使事情变得更糟。
什么可能导致 IE9(和部分 IE8)出现这种奇怪的行为?
最佳答案
经过大量调查,我想我找到了罪魁祸首。
这似乎是与 GIF 动画有关的问题。无论是<img>
元素,或设置为背景图像,或伪元素的内容,即使它已从 DOM 中删除,浏览器仍继续重绘页面的相同部分。
这可能是一项非常繁重的任务,不仅在旧计算机中如此,尤其是在使用较大的 GIF 时。但即使使用较小的,如果 GIF 用作背景图像或伪元素,IE9 会重绘元素的整个区域,而不仅仅是图像区域。 p>
这就是为什么它在屏幕截图中不断重绘 1750x1051 像素的巨大区域。 我只是用了一个糟糕的 64x64 微调器!
所以……当心旋转器。还有 IE9。
我还没有找到一个简单而明确的解决方案(除了完全放弃 IE9)。首先要避免的是在背景图像和伪元素中使用动画 GIF。
如果您必须在 IE9 中显示微调器,您可以使用小的或静态图像。唉,你必须自己制作动画,因为 IE9 不支持 CSS 动画。你不能依赖 requestAnimationFrame
或者,只是setInterval
.
我只是希望你能利用 jQuery。我不能...
出于某种原因,IE8 可以更好地处理动画 GIF,即使它仍然不完美。
关于html - 为什么IE9一直重绘页面导致无响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21102277/
我有一个在 Android 市场上相当流行的应用程序,它允许数以万计的用户按下一个按钮并向它发出语音命令。然后我就可以做很多不同的事情,比如给他们提供当前的天气预报等等...... 无论如何,我的应用
令人惊讶的是,标题基本上解释了它。我们有一个我们的客户制作的页面,我们正在重新创建该页面。 页面高度会一直增加,直到(我假设是这样)浏览器达到它的极限。我已经尝试过 Firebug 和 W3 验证器,
我是 react-native 的新手,试图创建我自己的组件,但它一直显示一个空屏幕。 这是我的组件代码 class BoxComponent extends Component { cons
我正在为我的 PHP 元素创建一个非常简单的博客,但遇到了一个简单的问题。我无法让我的页眉图像一直 float 。我有一个横幅,左边有一些文字,我有一个 1px 的切片,在可以选择的任何分辨率的宽度上
为什么我可以在另一个 Controller 的 View 中访问一个 Controller 的辅助方法?有没有办法在不破解/修补 Rails 的情况下禁用它? 最佳答案 @George Schreib
我正在使用带有最新 ADT 插件的 Eclipse Kepler SP2。每隔一分钟 Eclipse 就会说“为 Android 4.4.2 加载数据”并阻止我想做的一切。我在不同的文件夹中有几个 E
我是一名优秀的程序员,十分优秀!