ajax请求实时监控

时间:2012-12-06 02:58:21

标签: ajax

我们必须监控安装了GPS的公司的汽车并在地图上绘制它们的位置。

我们使用谷歌地图,并使用带有自定义图标的google.maps.Maker渲染汽车。

一旦汽车的位置发生变化,我们会重新设置标记的位置。

现在我们在实施real-time时遇到了问题。

为了使汽车的位置实时,我们必须在很短的时间内刷新汽车的位置。

我们尝试使用这种解决方案:

function refresh(){
    $.getJSONP(url,'xxx',function(data){
        resetLocation(data);
    }); 
}
setInterval(refresh,delay);

现在如何设置延迟?

在客户看来,小越好。因为它会使地图​​上的汽车顺利移动。例如,将延迟设置为500毫秒

但是,这将导致对服务器的频繁请求。服务器和浏览器可以承担这个吗?

是否有其他方法可以实现我们的要求?

1 个答案:

答案 0 :(得分:0)

如果您要进行高分辨率更新,最好使用Websockets或Meteor流并保持连接一段时间。

至于你的服务器能否负担得起,那就是你要说的。典型的MMO更频繁地发送更多数据;但他们使用数据中心。因此,这取决于您拥有多少基础架构,您期望的客户端数量,以及服务器端在发送之前编译数据所需的处理量。

如果您没有太多处理,使用基于事件的服务器(如Node.js)将是有利的。即使你这样做,我仍然会从Node或EventMachine提供它,并将繁重的工作委托给其他进程。

如果您要使用Node,请查看socket.io