在ASP.NET应用程序中使用jQuery Asyncronously负载板(Asyncronous

2019-09-20 04:21发布

我有一个ASP.net应用程序,它包含一个仪表板界面它由各种数量的面板的。 每个面板包含一个HighChart控制,并从不同的数据源加载。 有些数据源可能需要一些时间来执行,所以我不想拖慢整个页面的执行,因为一个缓慢的加载数据源。

我想在页面加载,然后每个小组时,它的数据是呼之欲出。

由于我使用的是高图表中显示的数据我有jQuery代码类似于:

 $(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);

        }
    });

如可以在$(文件)可以看出。就绪我做一个AJAX调用回服务器,以提取用于构建图表数据的JSON数据结构。

这一切工作正常,除了通话不似乎是真正的异步,如果第一个面板加载缓慢,则后续面板不加载,直到缓慢第一面板加载后。 为了证明我的面板数据源的1加了Thread.sleep代码。

我不会有虽然这是这样的情况下,我使用Ajax调用。

Answer 1:

那么,一旦我有一个类似的问题

首先尝试添加

async: true,
cache: false

ajax调用

如果不解决您的问题,那么你需要禁用Session页面上

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

欲了解更多信息:

如何显示异步结果哪一个是首次在asp.netweb应用?

REST WCF服务线程锁定在一个ASP.Net网站使用AJAX调用时



文章来源: Asyncronously Load Panels using jQuery in ASP.NET application