通过荒谬的数量将对象“隐藏”在屏幕外是否存在性能损失?

时间:2011-09-12 20:28:25

标签: html css performance

我在操作网站上的内容时经常使用的做法是绝对定位左侧(或有时顶部)值约为-2000像素的元素,以确保它不会在屏幕上显示。

现在,我知道我可以使用display: none使我的对象消失,但有些元素在不显示时不能很好用,有时我需要引用一些属性,比如它的宽度,例如,display属性设置为none时无法访问。所以我经常将元素定位,使其隐藏在屏幕上。

我的假设是:

由于对象未在屏幕上呈现,因此当我使用left: 2000px而不是left: 200000000px时,网站的效果应该没有差异。

所以我假设如果使用以下代码,两个页面的性能没有区别:

第一页:

<div style="height:100px; width:100px; left:-2000px"></div>

第二页:

<div style="height:100px; width:100px; left:-200000000px"></div>

我的假设是否正确?如果该元素是两个给定页面之间的唯一差异,那么性能是否会有任何差异(无论多小)?

*也就是说加载时间,页面大小,响应能力或任何其他性能指标

=================================

更新

我已根据Michael的建议对页面进行了分析,并发现以下内容:Spark说正确的加载时间会受到文件大小的影响。文件大小有四个字节的差异,这相当于加载时间约4ms的差异。

其次,IE和Firefox正确解释了我难以置信的大左值,但Chrome并未正确解释。 Chrome似乎无法识别大于1.35亿像素​​的值。然而,鉴于性能差异似乎很小,我无法推测为什么他们会决定将其限制在如此任意的数量。

2 个答案:

答案 0 :(得分:6)

您可以尝试使用Firebug(或Chrome / Safari开发人员工具)来分析页面加载时间,但如果有任何差异,我会非常惊讶。浏览器关心元素的x,y,z坐标。屏幕上或屏幕外是否无关紧要;它们仍然只是三个离散的数据点。

答案 1 :(得分:3)

当你说性能时,你的意思是加载时间?

如果你可以测量左边的字节差异,可以实现CSS的加载时间:-2000px vs left:-2000000px然后是,加载后者需要更长的时间,但这与它“无关”屏幕外“只是CSS大小。

所以很长的答案不是将它关闭屏幕使没有区别你仍然需要加载它,但是值越大,加载所需的时间越长。在这种情况下,它是如此之小,它不是一个真正的问题。

例如加载时间......

left:-2000px = Input: 0.021KB, Output: 0.019KB
left:-2000000px = Input: 0.025KB, Output: 0.024KB