Ya veo. Es porque, como explica la
documentación oficial, ese método (
.ready()
) se ejecuta cuando la librería (FusionCharts) se encuentre lista para ser usada, o, como también dice en la documentación, se ejecuta cuando ha terminado de cargarse el modelo de objetos del documento (DOM), momento en el cual se dispara el evento
DOMContentLoaded
, el cual termina ejecutando al método en cuestión, pero como la petición asíncrona ocurre después de eso, no sucede el efecto esperado.
Imagino que ese segundo bloque de código que muestras, que constituye la respuesta a la petición asíncrona, está en un documento PHP puesto que es hacia "listado_anual2.php" que envías los datos. Y también imagino que esos datos que se muestran en la construcción del gráfico son resultado de procesos en ese archivo PHP. Sabiendo esto, podrías tan solo devolver los datos de los procesos en el archivo PHP y en el archivo inicial (en donde lanzas la petición asíncrona) elaborarías el gráfico haciendo uso de la librería y de esos datos.