簡體   English   中英

用戶界面未更新

[英]UI not updating

我正在使用C#從數據庫中獲取數據,並使用Ajax將其傳遞到Javascript中。 我將這些數據存儲在數組中。 我每3秒查詢一次數據庫。 我正在使用這些數據來更新圖表,例如更改軌道的顏色。 在直到我的UI(瀏覽器)被卡住並且無法更新之前,模擬可以正常工作到30秒。 您能否告訴我如何使仿真運行而不會卡住?

代碼:

 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' });



                }

我只是涉足網絡開發,所以我不是專家,但是由於沒有人回應,所以我有一半的想法...

在我看來(沒有專家)可能會遞歸,從而創建一個無限循環……盡管由於setInterval可能會變慢。 如果您移動,我將傾向於查看是否可行:

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

從第一個函數開始,直到<script>塊的末尾。 要對此進行測試,您需要丟失相應的}); getData函數本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM