navigator.geolocation.getCurrentPosition 偶爾會失敗
儘管程式碼看似簡單,但您已經觀察到與的行為,遇到失敗多次成功執行後。
一個潛在的問題在於 getCurrentPosition 的預設無限逾時。如果不設定逾時,如果請求無限期掛起,則永遠不會觸發錯誤處理程序。為了避免這種情況,請在函數呼叫中指定逾時:
navigator.geolocation.getCurrentPosition(successCallback,errorCallback,{timeout:10000});
逾時可確保您在指定的時間範圍內收到回應,例如本範例中的 10 秒。
但是,即使解決了逾時問題,您也會遇到不同裝置和瀏覽器之間行為的其他變化。這表明地理定位的底層基礎設施可能不像宣傳的那麼可靠。
具體來說,您已經注意到:
這些觀察結果顯示後端基礎設施可能不如預期一致。需要注意的是,設定逾時參數可以讓錯誤處理程序在請求逾時時正確運作。
總而言之,雖然設定超時可以緩解無限請求的問題,但潛在的不一致問題地理定位基礎設施仍可能導致偶爾出現故障。
以上是為什麼 navigator.geolocation.getCurrentPosition 間歇性失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!