1

さまざまな数のパネルで構成されるダッシュボード インターフェイスを含む ASP.net アプリケーションがあります。各 Panel には HighChart コントロールが含まれており、異なるデータ ソースから読み込まれます。一部のデータ ソースは実行に時間がかかる場合があるため、1 つのデータ ソースの読み込みが遅いためにページ全体の実行速度が低下することは望ましくありません。

ページをロードしてから、データの準備ができたら各パネルを表示したいと思います。

ハイチャートを使用してデータを表示しているため、次のような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);

        }
    });

$(document).ready に見られるように、サーバーに Ajax コールバックを行い、チャート データの構築に使用される JSON データ構造を取得します。

これはすべて正常に機能しますが、最初のパネルの読み込みが遅い場合、最初のパネルの読み込みが遅いまで後続のパネルは読み込まれません。デモを行うために、DataSource パネルの 1 つに Thread.Sleep を追加しました。

私はAjax呼び出しを使用しているので、これが当てはまるとは思いませんでした。

4

1 に答える 1

0

さて、私が同様の問題を抱えていたら

最初に追加してみてください

async: true,
cache: false

あなたにajax電話する

それでも問題が解決しない場合はSession、ページのを無効にする必要があります

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

詳細情報:

asp.netwebアプリケーションで最初にある非同期結果を表示するにはどうすればよいですか?

ASP.NetサイトでAJAXを使用して呼び出されると、RESTWCFサービスがスレッドをロックします

于 2012-07-25T09:08:26.177 に答える