ブラウザーから場所の設定を取得しようとするアプリケーションがありますが、これには少し時間がかかる傾向があるため、ページの読み込み時に実行したいと考えています。ただし、場所のコールバックが実行される前に送信ボタンをクリックすると、場所のデータはありません。私の質問は簡単です。フォームを送信する前に、位置情報の成功のコールバックが終了するのをどのように待ちますか? (睡眠ステートメントのようなばかげたものなしで)。
理想的には、ビジー インジケーターを点滅させてデータを待ちたいと思います。これは可能ですか?ビジー インジケーターを表示するコードはありますが、データが利用可能になるまでエレガントに待機する方法がわかりません。
$(document).ready(function(){
var lat = "";
var lng = "";
var accuracy = "";
var locationFound = false;
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function positionSuccess(loc){
lat = loc.coords.latitude;
lng = loc.coords.longitude;
accuracy = loc.coords.accuracy;
locationFound = true;
});
}else{
alert("I'm sorry, your jerk browser doesn't support geolocation");
locationFound = true;
}
$('#locForm').submit(function(e){
$('#lat').val(lat);
$('#lng').val(lng);
$('#boundary').val($('#boundary-select').val());
}