Javascript 计时器只调用一次 Code 隐藏方法
Javascript timer calls a Code behind method only once
>我正在尝试通过调用向热图提供数据的 methodw 背后的代码来创建动态热图。我有一个调用函数GetNewHeatMapDataTable()的计时器。该函数获取新数据并将其推送到现有数组 (pointArray) 以动态更新地图。计时器按预期运行。但是,变量 newheatmapdata 的值不会更改,并且该函数仅调用隐藏方法 GetIAHeatMapDataTable("XXXXXXX") 的代码一次。我不确定我做错了什么。我希望有人能为我指出正确的方向。
下面是我的代码片段
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);
提前谢谢。
已解决:非常感谢斯蒂芬。我按照你的建议做了。像魅力一样工作。这是我的新代码,用于获取新数据并将其推送到热图
function fetchNewData() {
$.ajax({
type: "POST",
url: "Webform1.aspx/GetIANewHeatMapDataTable",
data: JSON.stringify({ level: "XXXXXXX" }),
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function(data) {
var newheatmapdata = [] ;
newheatmapdata = eval('(' + data.d + ')');
if (newheatmapdata.length > 0){
for (i = 0; i < newheatmapdata.length; i++) {
pointArray.push.apply(pointArray, newheatmapdata);
heatmapLayer.setData(pointArray);
}
}
},
});
}
setInterval(function() {fetchNewData();},1000);
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- Angularjs:空对象,当只有一次点击时
- 在Angular应用程序中每个帖子投票一次
- 主干模型更改事件只触发一次
- 使用每500ms运行一次的jquery函数是个好主意吗
- Javascript 计时器只调用一次 Code 隐藏方法
- 使用Parse Cloud Code一次更新多个对象