Я пытаюсь создать динамическую карту тепла, вызывая код по методу, который передает данные в тепловую карту. У меня есть таймер, который вызывает функцию GetNewHeatMapDataTable(). Функция извлекает новые данные и подталкивает их к существующему массиву (pointArray) для динамического обновления карты. Таймер работает как ожидается. Однако значение переменной newheatmapdata не изменяется, и функция вызывает только код позади метода GetIAHeatMapDataTable («XXXXXXX») только один раз. Я не уверен, что я делаю неправильно. Я надеюсь, кто-то может указать мне в правильном направлении.Таймер Javascript вызывает метод code behind только один раз
Ниже приведен фрагмент моего кода
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