2011-09-26 90 views
1

以下CSS背景大小和渐变应用于大型div时会导致Firefox挂起/崩溃。渲染渐变可能非常密集,但是有谁知道为什么Firefox在Webkit处理类似的CSS时不会崩溃而不会崩溃?这个CSS为什么会导致Firefox挂起/崩溃?

background-size: 4px 4px; 
background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, .02) 25%, transparent 25%, 
    transparent 50%, rgba(255, 255, 255, .02) 50%, rgba(255, 255, 255, .02) 75%, 
    transparent 75%, transparent); 

貌似降低背景大小导致Firefox崩溃“难”,因为我假定这将导致更多的梯度,以呈现。

崩溃的6.0.2,5.0.1,但呈现在3.6.22非常缓慢。

+0

什么版本?你能提供一个测试用例吗? http://jsfiddle.net//http://jsbin.com/。另外:https://bugzilla.mozilla.org/ – thirtydot

+0

这是WORKSFORME。 –

+0

请参阅http://jsfiddle.net/C8dTT/ - 适用于Firefox 6和Firefox 9.0a1。 –

回答

2

没有崩溃我在任的Firefox 6或Firefox 9.0a1使用http://jsfiddle.net/C8dTT/2/作为测试案例,它只是挂了一段时间,但最终会得到实现。计算梯度的效率显然很低,需要很长时间 - 而且这并不能帮助您让浏览器为网页的每个4x4字段重复计算。有趣的是,当我在调试器中停止执行时,运行的代码属于Intel图形驱动程序。如果在Firefox中将gfx.direct2d.disabled首选项设置为false,也没有问题。因此,根本原因可能是Direct2D或图形驱动程序中的一个错误 - 但仍然值得在https://bugzilla.mozilla.org/处提交错误报告,但他们会想要解决该病例。

需要注意的是Firefox 3.6的没有GPU加速这就是为什么你没有看到挂在那里。