我正在使用 Google Maps API 制作 map ,该 map 将显示服务器上玩家的当前位置。该列表由游戏服务器更新,数据存储在 Web 应用程序所在的 MySql 数据库中。当用户打开 map 时,将从数据库中提取玩家列表及其位置并将其发送到 View
public ActionResult Index()
{
return View(loadData()); //List<MapModel>
}
在 View 上,我为每个玩家在各自的位置创建了一个标记。我有一个计时器,可以创建/更新/删除标记(我已经删除了本演示中不必要的代码)
setInterval("updateMap();", 1000);
function updateMap()
{
**<update data somehow>**
@foreach(var player in Model)
{
<text>
players[@player.playerid] = new google.maps.Marker({
position: SanMap.getLatLngFromPos(@player.pos_x, @player.pos_y),
map: map
});
</text>
}
}
问题是如何更新数据?
最佳答案
尝试这样的事情。
public JsonResult GetPlayers()
{
return Json(loadData()); //List<MapModel>
}
然后在 javascript 中使用 jquery post方法
function updateMap()
{
$.post('/SomeController/GetPlayers', function(data){
for(var i =0; i<data.length; i++)
{
players[data[i].playerid] = new google.maps.Marker({
position: SanMap.getLatLngFromPos(data[i].pos_x, data[i].pos_y),
map: map
});
}
});
}
关于javascript - 更新从 Controller 发送到 View 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32727848/