navigator.geolocation.getCurrentPosition 偶尔会失败
尽管代码看似简单,但您已经观察到与 navigator.geolocation.getCurrentPosition 不一致的行为,遇到失败多次成功执行后。
一个潜在的问题在于 getCurrentPosition 的默认无限超时。如果不设置超时,如果请求无限期挂起,则永远不会触发错误处理程序。为了避免这种情况,请在函数调用中指定超时:
navigator.geolocation.getCurrentPosition(successCallback,errorCallback,{timeout:10000});
超时可确保您在指定的时间范围内收到响应,例如本示例中的 10 秒。
但是,即使解决了超时问题,您也会遇到不同设备和浏览器之间行为的其他变化。这表明地理定位的底层基础设施可能不像宣传的那么可靠。
具体来说,您已经注意到:
这些观察结果表明后端基础设施可能不如预期一致。需要注意的是,设置超时参数可以让错误处理程序在请求超时时正确运行。
总而言之,虽然设置超时可以缓解无限请求的问题,但潜在的不一致问题地理定位基础设施仍可能导致偶尔出现故障。
以上是为什么 navigator.geolocation.getCurrentPosition 间歇性失败?的详细内容。更多信息请关注PHP中文网其他相关文章!