2016-11-02 40 views
0

我正在使用asp.net MVC 5.我創建了4種不同類型的圖表,它們在同一頁面上查看。我以15-20秒的間隔從儀表獲取數據。我想要做的就是在每15/20秒後刷新我的圖表,因此對於數據庫中的每個新條目,我都不應該手動刷新我的頁面。爲此,我在我的圖形視圖中使用javascript setInterval像波紋管在ASP.NET聊天室中的Highcharts自動刷新MVC

setInterval(function() { 
    $.ajax({ 
     url: '/Home/MultiGraph', 
     type: "POST", 
     success: function (result) { 
      $("#c1").html(result); 
     } 
    });   
    alert("hello"); 
}, 3000); 

婁是我divs在我所放置我的圖表

<div id="c1"> 
    <div id="container1" style="height: 400px; width:auto"></div> 


    <div id="container2" style="height: 400px; width:auto"></div> 


    <div id="container3" style="height: 400px; width:auto"></div> 


    <div id="container4" style="height: 400px; width:auto"></div> 
</div> 

$(window).on('load', function() { }我已經把我的4個圖初始化像波紋管

var chart1 = new Highcharts.Chart({//rendered to container1}); 
var chart2 = new Highcharts.Chart({//rendered to container2}); 
var chart3 = new Highcharts.Chart({//rendered to container3}); 
var chart4 = new Highcharts.Chart({//rendered to container4}); 

圖表中的所有數據都以數組格式顯示

所以運行我的網頁看起來像波紋圖像

enter image description here

我按Ok後之後,我得到波紋管

enter image description here

我不知道爲什麼它的發生,我只是想刷新/只重新載入圖表,但所有我得到上述結果,因爲它刷新整個頁面也刷新我無法查看我的圖表

而且我的圖表被放置在一個視圖,該視圖是繼主layout即其他圖表和搜索欄我的觀點是,從佈局未來

UPDATE:

貝婁是它向我展示形象在result

enter image description here

數據任何幫助將高度讚賞

+0

不阿賈克斯同一個頁面,阿賈克斯只有當我把我的圖表中的局部視圖是什麼,然後圖表人 – madalinivascu

+0

內容重新加載這個部分視圖? – faisal1208

+0

它比目前的更好的情況 – madalinivascu

回答

0

因爲您正在使用setInterval它會重複該子句中的所有內容,因此它會在該對象中添加HighChart對象。

你可以做什麼是你的Ajax添加beforeSend

$.ajax({ 
    url: '/Home/MultiGraph', 
    type: "POST", 
    beforeSend: function (result) { 
      $("#c1").empty(); //empty first the div 
    }, 
    success: function (result) { 
     $("#c1").html(result); 
    } 
}); 
+0

試過但沒有任何用處 – faisal1208

+0

所以我不必使用成功函數? – faisal1208

+0

與我的問題圖片中顯示的結果相同 – faisal1208