2017-04-22 17 views
0

データベースからC#でデータを取得し、Ajaxを使用してJavascriptに渡しています。このデータを配列に格納しています。 3秒ごとにデータベースに照会します。私はトラックの色を変えるように、このデータを使って私のダイアグラムを更新しています。シミュレーションは30秒までうまく動作します。その後、UI(ブラウザ)が停止して更新されません。立ち往生せずにシミュレーションを実行する方法を教えてください。UIが更新されない

コード:

function getData() { 
      $(document).ready(function() { 
       var q = setInterval(getData, 3000); 
       jQuery.ajax({ 
        type: "POST", 
        url: "WebForm1.aspx/GetStations", //It calls our web method 
        contentType: "application/json; charset=utf-8", 
        data: JSON.stringify({ myArray: dl_id_track }), 
        dataType: "json", 
        async: true, 
        success: function (data) { 
         if (data != null) { 
          var len = data.d.length;       
          for (var i = 0; i < len; i++) { 
           signo[i] = data.d[i].signo; 
           status[i] = data.d[i].status; 
          } 

        } 
        simulate(); 
       }, 
       error: function (d) { 
       } 
      }); 

})。

} 



function simulate() { 

      for (var i = 0; i < b.length; i++) { 
       for (var j = 0; j < 1024; j++) { 
        //track 
        if (signo[j] == sig_no_track[i]) { 
         if (status[j] == "1") { 
          var x1 = parseInt(left_track[i]) + parseInt(x1_track[i]); 
          var y1 = parseInt(top_track[i]) + parseInt(y1_track[i]); 
          var x2 = parseInt(left_track[i]) + parseInt(x2_track[i]); 
          var y2 = parseInt(top_track[i]) + parseInt(y2_track[i]); 
          var line1 = draw.line([[x1, y1], [x2, y2]]).stroke({ width: 3, color: '#ff0000' }); 



       } 
+0

コードの関連部分を表示できますか? –

+0

私はコードを追加しました。 getData関数は、C#からDBからデータを取得します。シミュレート機能は、トラックの色を変更します。 – padma

答えて

0

私は、ウェブ開発に手を出すので、私は何の専門家だが、誰-1が応答していないと私は半-アイデアを持っているので...

それは(私には見えますエキスパートはいません)、無限ループを作成します...おそらく、setIntervalのために遅いですが。

最初の関数のうち、あなた <script>ブロックの終わりまで
$(document).ready(function() { 
    var q = setInterval(getData, 3000); 
}); 

を:私はあなたが移動した場合、それが動作するかどうかを確認するために傾斜させることだろう。これをテストするには、getData関数自体から対応する});を失う必要があります。

+0

ありがとう、それは働いた!今は立ち往生していません。 – padma

関連する問題