Estoy en un escenario en el que necesito mostrar un gráfico de Google que esté presentable y listo para mostrar "antes" de que se cargue toda la página. Intenté cargar módulos usando la propiedad "ignoreWindowOnLoad", jugando con diferentes metodologías de llamadas asincrónicas y diferentes versiones de la API. También he intentado cargar los scripts de las siguientes maneras:
<script type="text/javascript" src='https://www.google.com/jsapi?autoload={"modules":[{"name":"visualization","version":"current","packages":["gauge"],"ignoreWindowOnLoad":true}]}'></script> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> google.load("visualization", "current", { packages: ["corechart"], ignoreWindowOnLoad: true});El problema es que cuando se carga la página y trato de dibujar el gráfico inmediatamente después de la carga, aparece una excepción:
Uncaught TypeError: Cannot read properties of undefined (reading 'arrayToDataTable') at drawChartEstoy usando ASP.NET (no Core) como back-end, y usar una tecnología SSR como node.js no es una opción viable en mi escenario, pero si puedo lograr SSR sin un marco (si no es una solución exagerada ) que puede ser aceptable. El gráfico se carga bien si llamo a drawChart después de que la página se cargue por completo.
Básicamente, estoy buscando una manera de garantizar que todas las API relacionadas con la visualización estén completamente cargadas antes de que se presente la página, de modo que una sola solicitud web pueda extraer toda la página y su contenido, incluidos los gráficos. Cualquier consejo sobre cómo lograr esto sería muy apreciado.