0
我試圖通過調用methodw後面的代碼來爲熱圖提供數據來創建動態熱圖。我有一個計時器,調用函數GetNewHeatMapDataTable()。該函數獲取新數據並將其推送到現有數組(pointArray)以動態更新地圖。計時器按預期運行。然而,可變newheatmapdata的值不改變,並且該函數僅調用後面方法GetIAHeatMapDataTable(「XXXXXXX」)代碼只有一次。我不知道我做錯了什麼。我希望有人能指出我正確的方向。Javascript定時器僅調用一次代碼方法
下面是我的代碼
var heatmapData = [];
function GetDataTableFromCodeBehind() {
heatmapData = <%=GetIAHeatMapDataTable("XXXXXXX")%>;
}
var pointArray = new google.maps.MVCArray(heatmapData);
var heatmapLayer = new google.maps.visualization.HeatmapLayer({
data: pointArray,
dissipating: false,
radius: 0.00001
});
function GetNewHeatMapDataTable() {
var newheatmapdata = []
newheatmapdata = <%=GetIANewHeatMapDataTable("XXXXXXX")%>;
if (newheatmapdata.length > 0){
for (i = 0; i < newheatmapdata.length; i++) {
pointArray.push.apply(pointArray, newheatmapdata);
}
}
}
setInterval(function() {GetNewHeatMapDataTable();},3000);
預先感謝片段。
您不能從客戶端調用一個這樣的服務器的方法新的代碼,你需要做一個AJAX調用服務器。 javascript沒有意識到服務器端方法,所有你對當前代碼的處理都是在生成頁面時調用一次方法。 – Stephen
你看到這個GetIANewHeatMapDataTable(「XXXXXXX」) – brk
嗨user2181397, 我沒有看到不同的值不同的值。我能夠調用該方法併成功獲取數據數組一次。然而,一旦計時器擊中區間,該方法GetIANewHeatMapDataTable(「XXXXXXX」)不再被稱爲和可變newheatmapdata的初始值不會改變 – darwin25