html - programacion - ¿Hay un costo de rendimiento por no declarar el atributo "tipo" en la etiqueta<style>?
manual de programacion android pdf (12)
Como ya dijo en su pregunta, el tipo predeterminado es ''text / css'', lo que significa que si el atributo de tipo no está presente, el navegador usa ''text / css''.
Para los navegadores basados en el motor de webkit, en realidad es más rápido omitir el atributo de tipo porque primero verifica que el tipo esté vacío. Por lo tanto, si no omite el tipo, el navegador tiene que hacer al menos 1 comprobación más. (El cheque si el tipo proporcionado es el text/css
).
Podría imaginar que otros navegadores (no basados en webkit) están implementando la comprobación de css probablemente de la misma manera. Porque comprobar que una cadena vacía es "más fácil" desde el punto de vista de la CPU (en el caso de un navegador webkit, se trata de un AtomicString
del motor webkit).
Puede encontrar el css check dentro de la implementación del motor webkit . También se puede encontrar dentro de la implementación de cromo .
El atributo de tipo en el elemento <style>
identifica el tipo de medio que se está utilizando.
Si el atributo de tipo no se declara, el valor predeterminado es text/css
.
¿Hay un costo de rendimiento (por pequeño que sea) para no declarar type="text/css"
en el elemento <style>
?
Creo que debería tener un impacto, aunque sea opcional.
Consideremos ambos casos:
- Caso 1: el tipo está presente
Mientras analiza el explorador de documentos html, analizará la etiqueta de estilo y leerá el atributo de tipo y sabrá el formato del archivo. Verificará el soporte para el tipo y comenzará la descarga. - Caso 2: el tipo no está presente
Mientras analiza el explorador de documentos html, analizará la etiqueta de estilo y verificará el atributo de tipo. Ya que no tiene un atributo de tipo, comprobará el tipo predeterminado guardado en la configuración del navegador e intentará descargar el archivo de acuerdo con la configuración predeterminada.
Ahora, el paso adicional de verificar las configuraciones predeterminadas y aplicarlas debería tomar un tiempo adicional en el caso 2. Así que diría que hay un impacto en el rendimiento pero es realmente insignificante. Especificar el tipo debería aumentar el rendimiento.
De acuerdo con HTML5, el tipo predeterminado para el estilo es texto / css y el tipo predeterminado para la etiqueta de script es texto / javascript . Incluso si no especifica, considerarán los valores predeterminados. para que no haya ningún problema de rendimiento por no mencionar el tipo teniendo en cuenta los navegadores más modernos
De los documentos de estilo MDN en el atributo de type
:
Este atributo es opcional y por defecto es text / css si falta.
Ya que por defecto es el correcto, no hay impacto.
Desde la introducción de HTML 5.x, ya no es necesario, si el navegador de su cliente ya es compatible con HTML5, puede omitir ese.
El propósito principal de type = "text / css" es establecer el valor del atributo type para indicar el idioma del recurso vinculado (hoja de estilo). Esto permite que el agente de usuario evite descargar una hoja de estilo para un lenguaje de hoja de estilo no compatible. ( www.w3.org )
así que, básicamente, solo puede reducir la carga de la página al evitar que los archivos de bloqueo de procesamiento se descarguen. por lo que es seguro decir que, usar el atributo type para especificar el tipo de hoja de estilo a veces podría aumentar la velocidad de las páginas.
Esto es opcional en las últimas versiones, incluyendo o excluyendo la etiqueta no importa porque es la predeterminada, pero incluir esta etiqueta no es una mala idea porque ayudará a los navegadores a identificar el script fácilmente, especialmente las versiones antiguas.
No tendrá un impacto en el rendimiento, sin embargo, los navegadores antiguos y no estándar pueden malinterpretar el contenido dentro de los elementos cuando el tipo no está configurado. Con bastante frecuencia he usado bloques incrustados con un elemento de tipo, y no he visto ningún problema al usar navegadores comunes, IE, Chrome, Firefox o Safari.
Normalmente no tiene costo de rendimiento y con html 5 no debería haber ningún problema, es mejor no declararlo y luego configurar el tipo incorrecto
Respuesta simple: No :)
Es como un dicho humano "Hey. ¿Cómo estás?" en lugar de "Hey. ¿Cómo estás?" ... Tu cerebro sabe lo que intentas decir y no te toma más tiempo entender la oración.
También puede preguntar si existe un costo de rendimiento para realizar una solicitud HTTP en primer lugar. Es imposible eliminar por completo la noción de desempeño en sí. En algún momento se encuentra en una eficiencia de rendimiento del 100% para su página, cumple con los estándares o no. El aspecto complementario al rendimiento son los estándares en este caso. Otro ejemplo sería el emprendimiento y la ejecución. Todas las grandes ideas en el mundo son completamente inútiles a menos que pueda ejecutarlas para hacer que dicho negocio encaje en un modelo económico que funcione en el mundo real.
Ahora es posible hacer grandes saltos en el rendimiento. En los años 80 y 90, puedes comprar un Honda barato (no estándar aquí) o mejorar el rendimiento (Porsche, Ferrari o McLaren). Luego vino Tesla y completamente sopló, incluso los mejores en aceleración. Descargo de responsabilidad: Realmente no me importan los autos, pero es una analogía fácil de comprender para la mayoría.
Como alguien que ha dejado muy pocas rocas intactas, puedo atestiguar personalmente que, eventualmente, no es usted en su entorno en el que debe buscarse el aumento de rendimiento. Entonces, mientras los felicito por tratar de pensar fuera de la caja, haría otras consideraciones sobre dónde mejorar el rendimiento.
- Tenga cuidado con la utilización excesiva del selector
*
. - Evite la
animation
CSS de box-shadow, excepto en::after
y::before
pseudo-elements. - Tenga en cuenta qué selector / reglas no se utilizan.
- Tenga en cuenta que si utiliza una sola hoja de estilo compilada para un dominio completo, debería tener conocimientos de CSS muy afinados.
- Evite las clases CSS de desciframiento (atributos de clase en todo).
- Evite la
position
CSSabsolute
yfixed
en aspectos de diseño moderados o menores; Reserva sólo para elementos de diseño principales. - Minimice su CSS cuando y donde sea posible.
- Reducir el número de solicitudes HTTP.
- Utilice herramientas de terceros como YSlow de Yahoo y Google PageSpeed Insights para obtener más información.
Según MDN
type
atributo detype
es opcional y por defecto estext/css
.
¿Entonces no tiene que preocuparse por el costo de rendimiento, si no declara type="text/css"
en el elemento <style>
?