update setsize highchart dynamically data change addpoint jquery asp.net asynchronous highcharts

jquery - setsize - series highchart



Asincronously Load Panels usando jQuery en la aplicaciĆ³n ASP.NET (1)

Tengo una aplicación ASP.net que contiene una interfaz de panel que consiste en varios paneles. Cada panel contiene un control HighChart y se carga desde una fuente de datos diferente. Algunas de las fuentes de datos pueden tardar en ejecutarse, por lo tanto, no quiero ralentizar la ejecución general de la página debido a una fuente de datos de carga lenta.

Me gustaría que la página se cargue y que cada panel aparezca cuando los datos estén listos.

Como uso gráficos altos para mostrar los datos, tengo un código jQuery similar a:

$(document).ready(function () { var panelIDList = dashID.Get("panelList"); for (var i = 0; i < panelIDList.length; i++) { addpanel(panelIDList[i]); } }); function addpanel(panelID) { $.ajax({ type: "POST", url: "Data.aspx/GetData", data: "{val:''" + panelID + "''}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { var myObject = eval(''('' + msg.d + '')''); var options = { chart: { renderTo: myObject.renderTo, type: myObject.chartVal, height: 300, width: 600 }, xAxis: { categories: myObject.xaxis.Categories, }, series: myObject.serList }; var chart = new Highcharts.Chart(options); } });

Como se puede ver en $ (document) .ready, realizo una llamada Ajax al servidor para recuperar una estructura de datos JSON que se usa para construir los datos de los gráficos.

Todo esto funciona bien, excepto que las llamadas no parecen ser realmente asíncronas, si el primer panel tarda en cargarse, los paneles siguientes no se cargarán hasta que se cargue el primer panel lento. Para demostrar que he agregado un Thread.Sleep en 1 de los paneles DataSource.

No hubiera pensado que este era el caso ya que estoy usando llamadas Ajax.


Bueno, una vez que tuve un problema similar

Primero intente agregar

async: true, cache: false

para ti llamada ajax

Si eso no resuelve tu problema, entonces debes inhabilitar la Session en la página.

<%@ Page EnableSessionState="False" ....

Para más información:

¿Cómo mostrar los resultados asincrónicos cuál es el primero en la aplicación asp.netweb?

El servicio REST WCF bloquea el hilo cuando se lo llama usando AJAX en un sitio ASP.Net