我正在努力在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语音)也会发生同样的事情,您无法通过代码激活它们。抱歉,您对这件事没有太多控制权。