我正在努力在HTML地理位置中使用maximumAge参数。它在Chrome中的工作方式似乎与规范不符。

我有read through the geolocation API spec,据我了解,如果将maximumAge设置为零,则应该始终获得新的职位。



但是,这是我的代码:

function gpsSuccess(pos) {
   var positionDate = new Date(pos.timestamp);
   var currentDate = new Date();
   console.log(positionDate.toLocaleString(), currentDate.toLocaleString());
}
watchId = navigator.geolocation.watchPosition(gpsSuccess,
    gpsFail, {
        enableHighAccuracy: true,
        maximumAge: 0,
        timeout: 27000
});

而且我看到以下内容:
Wed Nov 23 2011 10:25:43 GMT+0000 (GMT), Wed Nov 23 2011 10:52:16 GMT+0000 (GMT)

因此,所获得的位置与当前时间相差半小时。

我以为这可能只是卫星时间与本地时间之间的时差,但是我一直在反复刷新,即使currentDate改变了,positionDate也没有改变。

即使将maximumAge设置为零,为什么仍然重复使用相同的缓存位置?

这是在Chrome,顺便说一句。

最佳答案

这是不可能的。某些html5标签(例如webkit语音)也会发生同样的事情,您无法通过代码激活它们。抱歉,您对这件事没有太多控制权。

09-17 14:31