Un motor de navegador (también conocido como motor de diseño o motor de renderizado ) es un componente de software central de todos los principales navegadores web . El trabajo principal de un motor de navegador es transformar documentos HTML y otros recursos de una página web en una representación visual interactiva en el dispositivo de un usuario .
Un motor de navegador no es un programa informático independiente, sino más bien una pieza fundamental de un programa más amplio, como un navegador web , del que se deriva el término. La palabra " motor " es una analogía con el motor de un automóvil.
Además de "motor de navegador", se utilizan a diario otros dos términos relacionados con conceptos relacionados: " motor de diseño " y " motor de renderizado ". [1] [2] [3] En teoría, el diseño y la renderización (o "pintura") podrían ser manejados por diferentes motores. En la práctica, sin embargo, los componentes de representación y diseño de un determinado motor de navegador están estrechamente acoplados y rara vez se encuentran por sí solos fuera del motor del navegador, a diferencia del caso de los motores de secuencias de comandos de los navegadores.
Además del diseño y la representación, un motor de navegador aplica la política de seguridad entre documentos, maneja la navegación a través de hipervínculos y datos enviados a través de formularios e implementa el modelo de objetos de documento (DOM) expuesto a scripts asociados con el documento.
Todos los navegadores web importantes admiten JavaScript (JS) para permitir una amplia gama de comportamientos interactivos especificados por el editor; sin embargo, la compatibilidad con JS se trata como una preocupación separada . Aunque JS se creó inicialmente como un lenguaje simple para usar en páginas web , es un lenguaje de programación de propósito general , y la mayoría de los equipos de desarrollo que trabajan en motores de navegador desvinculan el desarrollo del motor del navegador del desarrollo del motor JavaScript que permite al navegador Proporcionar apoyo al idioma. [4] Los navegadores tienen métodos sofisticados para coordinar sus motores. [1]
Los motores de navegador se utilizan en otros tipos de programas además de los navegadores web. Por ejemplo, un cliente de correo electrónico podría depender de un motor de navegador para mostrar el correo electrónico HTML . El marco Electron , impulsado por Blink y V8 del proyecto Chromium de Google , permite a los desarrolladores de software utilizar tecnologías creadas inicialmente para la plataforma web , como HTML , CSS , JavaScript y DOM, para crear aplicaciones gráficas de escritorio . La familiaridad de los programadores con el desarrollo basado en navegador ha dado como resultado que Electron y otros marcos de aplicaciones multiplataforma basados en motores de navegador se utilicen a menudo en lugar de los kits de herramientas GUI tradicionales .
El diseño de una página web normalmente se especifica mediante hojas de estilo en cascada (CSS). Cada hoja de estilo es una serie de reglas que el motor del navegador interpreta para determinar cómo se debe presentar el documento. Por ejemplo, una página web publicada puede usar CSS para especificar reglas para diseñar detalles tipográficos , como fuente , color y tamaño del texto. El motor combina todas las reglas CSS relevantes para calcular las coordenadas gráficas concretas para la representación visual que pintará en la pantalla. [1]
Algunos motores pueden comenzar a renderizar antes de que se descarguen los recursos de una página. Esto puede dar como resultado cambios visuales a medida que se reciben más datos, como imágenes que se completan gradualmente o un destello de contenido sin estilo .
Sólo se muestra la duración del desarrollo activo, que es cuando se siguen añadiendo al motor nuevos estándares web relevantes.
Debido a las limitaciones de la plataforma iOS, todos los navegadores deben construirse sobre el motor de renderizado WebKit.