Necesito mostrar algunos gráficos vectoriales interactivos (adjuntar con oyentes DOM, etc.) en el sitio web en el que estoy trabajando. Existe una recomendación del W3C para SVG aunque este formato aún no es reconocido por el soporte de Internet Explorer, que es obligatorio (para un sitio web público). Sin embargo, IE maneja VML e incluso hay bibliotecas de JavaScript que hacen un dibujo tipo lienzo en función de un navegador (SVG vs. VML): excanvas, GFX of Dojo Toolkit y más. Eso sería agradable y aceptable, aunque ninguno de ellos puede mostrar una imagen SVG del marcado dado.Visualización de gráficos vectoriales en un navegador
Así que la pregunta en realidad se compone de varias partes:
- ¿Hay librerías Javascript entre navegadores que muestran los gráficos vectoriales a partir de determinado margen de beneficio (no es obligatorio SVG) y la disponibilidad de la oferta para unirse a eventos DOM?
- En caso negativo, ¿cuál de las tecnologías más integradas en el navegador pupular sería la más adecuada para realizar dicha tarea? Puedo elegir entre Flex/Flash, applet de Java. Silverlight no es una opción debido al bloqueo de Windows.
[EDIT] Gracias a todos por sus comentarios/sugerencias. A continuación son sólo algunas de mis notas al azar/conclusiones sobre este asunto:
- El nivel de interactividad que necesito es la capacidad de detectar eventos DOM de la imagen del vector en mostrado - mouseover, mouseout, haga clic etc - y la capacidad de reaccionar en ellos como cambiar el color de fondo, mostrar el cuadro de diálogo, etc.
- La idea de seguir con el formato SVG es bastante buena ya que es nativa en muchos navegadores, excepto en la más popular: IE. Después de experimentar con la visualización de SVG dinámico, me di cuenta de que IE versión 7 era la más problemática. Hay demasiada molestia debido a las incompatibilidades del navegador.
- Cake parece un gran marco de Javascript, aunque no pude conseguir que los ejemplos funcionen en IE7.
- Applets de Java: esa idea me gustó más ya que pensé que podría usar la biblioteca de Apache Batik, un procesador SVG de calidad. Sin embargo, Batik es una gran biblioteca y no puedo permitirme implementar un applet que pesa unos pocos megabytes.
- Decidí seguir con la opción Flex. Encontré una bonita biblioteca de gráficos vectoriales Degrafa. Utiliza su propio formato de marcado, sin embargo, reconoce la notación de ruta SVG, por lo que en mi caso va a ser bastante fácil transformar mis archivos SVG usando XSLT o simplemente analizarlos.
[EDIT 2] Aparecieron más comentarios. Me gustaría aclarar que con "Windows lock-in" me refiero a la situación que Silverlight normalmente correría en Windows, más específicamente, IE. Dudo que sea una solución aceptada (como Flash o Java Applet, por ejemplo) en otros sistemas. Sí, no tengo dudas de que uno puede ejecutar la aplicación Silverlight en cualquier sistema, aunque me temo que sería demasiado esfuerzo para un usuario promedio.
@ Akira: ¿Ha tenido algún problema con los "procesadores SVG" en IE7? Me lanzan errores de Javascript todo el tiempo.
Que yo sepa, Adobe suspenderá el soporte para su complemento. –