xslt - with - Ventajas/desventajas de usar XSL para renderizar páginas web enteras
xslt condicional (7)
Estoy en las etapas preliminares de planificación de un proyecto con un cliente para rehacer su sitio web actual. Eché un vistazo a su sitio actual para ver qué problemas están enfrentando actualmente y, luego de la inspección, noté que cada página se procesaba completamente con XSLT. Estoy familiarizado con XSLT, lo he utilizado para representar controles personalizados que necesitan actualizarse a menudo en el lado del cliente, pero nunca para representar una página completa.
Ayúdame a ser menos ignorante, ¿cuál podría ser el razonamiento detrás de esto? ¿Qué beneficios o desventajas trae esto a la mesa?
XSLT en el lado del cliente
- Desactiva la representación progresiva. El usuario no verá nada hasta que toda la hoja de estilo y los datos se carguen por completo.
- No es compatible con los motores de búsqueda y otros rastreadores. Verán XML sin formato.
- No es compatible con navegadores antiguos / menos avanzados.
XSLT en general
- A menos que diseñe cuidadosamente sus hojas de estilo, pueden volverse difíciles de mantener rápidamente:
- con numerosas plantillas puede ser muy difícil averiguar qué plantillas se aplican.
- la verbosidad de la sintaxis XSLT y XML dificulta la comprensión de todo a simple vista.
- Los trucos de XPath son tentadores, pero pesadillas para modificar más tarde.
Lado del servidor:
Ventajas:- Plantillas limpias y concisas
- Una manera fácil de procesar datos XML en HTML
- Razonablemente rápido
- Modelo de programación desconocido e incómodo para muchos programadores de lenguaje de procedimiento
- Difícil si algunos o todos los datos de origen no están en XML
- Puede ser muy lento cuando no se usa con cuidado (los pequeños cambios pueden tener grandes repercusiones)
Lado del cliente:
Ventajas:- Una forma conveniente de descargar el procesamiento en el código del cliente, donde los scripts pueden tener un mejor conocimiento de la mejor forma de formatear el HTML resultante.
- El soporte del navegador está en todo el mapa.
- Google no te lo agradecerá.
Suena como el fetiche XML de All-singing-all-dancing.
Como puede hacer cualquier cosa con XSLT, también podría hacer todo. He tenido personas que preguntan por qué un almacén de datos no es solo XSLT transforma entre entrada, data mart e informes.
Ventaja. Todo está en XML.
Desventajas
No es muy legible Sus plantillas de página están vinculadas como transformaciones XSLT con bucles confusos y funciones de procesamiento condicional.
Cualquier cambio en las plantillas de página requiere un experto en XSLT, además del diseñador gráfico que creó (y depuró) el HTML y el CSS.
Mayor beneficio: plataforma neutral para renderizar xml
Mayor desventaja xsl es difícil de mantener
Una vez tuve que trabajar con un xsl de más de 4.000 líneas que también incluye varias otras plantillas xsl. ¡Ahora fue difícil trabajar con eso!
Parece que lo hicieron porque conocían muy bien XSL-T y ya tenían datos XML disponibles.
No me gustaría la solución yo mismo. XSL-T no es lo más fácil de leer o escribir. No se presta bien para visualizar cómo se verá una página. Corta a los diseñadores y desarrolladores web fuera del proceso. Y no se internacionaliza bien. No hay nada equivalente a los paquetes de recursos de Java que pueden extraer información específica de la configuración regional. No considero cortar y pegar una buena solución.
Creo que XSLT es genial cuando se construye de la manera correcta (utilizamos un marco de plantillas en el trabajo).
Las respuestas anteriores proporcionan una buena encuesta de algunas de las ventajas y desventajas de XSLT. Me gustaría agregar otra desventaja. Hemos encontrado que se topa con problemas de escalabilidad al usar XSLT para conjuntos de datos moderadamente grandes.
Al procesar archivos XML, XSLT debe cargar todo el documento en la memoria. Con Xalan, esto consume aproximadamente 10 veces el tamaño del archivo de entrada (saxon tiene una implementación DOM alternativa que usa menos memoria). Si cualquiera de sus conjuntos de datos de entrada crece más allá de un par de cientos de megabytes, su procesador XSLT podría escamarse.