我有一个Web应用程序,要求用户提供他们的GPS位置。使用类似于以下代码的标准代码可以很好地运行:
function getpos_callback( a ) {
top.location.href = 'location.php?lat=' + a.coords.latitude + '&lon=' + a.coords.longitude;
}
function error_callback( er ) {
top.location.href = 'location.php?err=1';
}
if ( 'geolocation' in navigator ) {
navigator.geolocation.getCurrentPosition( getpos_callback, error_callback, {
enableHighAccuracy: true,
maximumAge: 300000, // 300 seconds = 5 min = max age of cached value to use
timeout: 8000, // 8 seconds
} );
}
这里的问题是:在桌面浏览器上,确定位置可能需要相当长的时间(根据代码,每次需要4-6秒,甚至长达8秒)。即使在移动设备上,有时也会变得迟钝。当用户只想使用站点时,这些秒钟感觉像漫长的永恒。
我想要做的是让用户立即进入网站,但在后台“生成任务”以请求浏览器获取位置,并在检索到位置后在后台将该位置传递给我。
这是否可行?