Una práctica que uso comúnmente cuando manipulo contenido en sitios web es colocar absolutamente elementos con un valor izquierdo (o algunas veces superior) de alrededor de -2000px, para asegurar que no se vea en la pantalla.¿Hay una penalización de rendimiento al "esconder" objetos de la pantalla en cantidades ridículas?
Ahora, sé que podría usar display: none
para hacer que mis objetos desaparezcan, pero algunos elementos no funcionan bien cuando no se muestran, y a veces necesito hacer referencia a algunas propiedades como su ancho, por ejemplo, que puede se puede acceder cuando la propiedad display
está configurada en none
. Muy a menudo posicionaré el elemento para que quede oculto de la pantalla.
Mi hipótesis, entonces, es la siguiente:
Puesto que el objeto no se representa en la pantalla no debería haber ninguna diferencia en el rendimiento de la página web * cuando uso left: 2000px
en contraposición a left: 200000000px
.
así que supongo que si se utiliza el siguiente código, no habría ninguna diferencia en el rendimiento de las dos páginas:
Página uno:
<div style="height:100px; width:100px; left:-2000px"></div>
Página dos:
<div style="height:100px; width:100px; left:-200000000px"></div>
¿Son correctas mis suposiciones? Si ese elemento fuera la única diferencia entre dos páginas determinadas, ¿habría alguna diferencia (por pequeña que sea) en el rendimiento?
* Es decir el tiempo de carga, tamaño de página, capacidad de respuesta, o cualquier otra medida de rendimiento
======================= ==========
actualización
he perfilado las páginas según lo sugerido por Michael y encontró lo siguiente: Spark era lo correcto al decir que el tiempo de carga se vería afectada por el tamaño del archivo. Había una diferencia de cuatro bytes en el tamaño del archivo que correspondía a una diferencia de aproximadamente 4 ms en el tiempo de carga.
En segundo lugar, mi increíblemente grande valor a la izquierda fue interpretado correctamente por IE y Firefox, pero no por Chrome. Chrome no parece reconocer valores superiores a alrededor de 135 millones de píxeles. Sin embargo, dado que la diferencia de rendimiento parece ser mínima, no puedo especular sobre por qué habrían decidido limitarla a una cantidad tan arbitraria.
También puede usar 'visiblity de: hidden;' si desea ocultar un elemento sin perder la opción de obtener información acerca de las métricas. –
@Rob pero no visibilidad: oculto ¿retiene el elemento en el flujo DOM? ¿De esta manera afecta el diseño de los elementos a su alrededor? –