2017-04-22 114 views
0

我從c#數據庫中獲取數據並使用Ajax將它傳遞到Javascript中。我將這些數據存儲在數組中。我每3秒查詢一次數據庫。我正在使用這些數據來更新我的圖表,例如更改曲目的顏色。仿真工作正常,直到30秒後,我的用戶界面(瀏覽器)卡住,並沒有得到更新。您能否告訴我如何讓仿真運行而不會卡住?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#中的數據庫獲取數據。模擬功能改變軌道的顏色。 – padma

回答

0

我只涉足網絡的發展,所以我不是專家,但因爲沒有其他人迴應,我有一半的-想法...

在我看來(沒有專家)喜歡它可能遞歸,創建一個無限循環...雖然也許由於setInterval慢。我會傾向於看它是否工作,如果你移動:

$(document).ready(function() { 
    var q = setInterval(getData, 3000); 
}); 

出了第一個功能的和你<script>塊的結尾。爲了測試它,你需要從getData函數本身中失去相應的});

+0

謝謝,它的工作!它現在不會卡住。 – padma