-1

このページは一度正常にロードされます...

基本的にはGPSの場所を取得しています.10秒ごとにリダイレクトを実行して、GPSデータを再度取得する必要があります...

しかし、10秒ごとに継続的にリダイレクトされるわけではありません...

どうした - どう見ても...

  <script type="text/javascript"> 

// Get a single location update
function getLocationConstant()
{
    if(navigator.geolocation)
    {
        navigator.geolocation.getCurrentPosition(onGeoSuccess,onGeoError,{enableHighAccuracy:true,maximumAge:0});
    } else {
        alert("Your browser or device doesn't support Geolocation");
    }
}

// If we have a successful location update
function onGeoSuccess(event)
{
    document.getElementById("Latitude").value =  event.coords.latitude; 
    document.getElementById("Longitude").value = event.coords.longitude;
    document.getElementById("location").href = "track2.cfm?track=s&GPSLat=" + event.coords.latitude + "&GPSLong=" + event.coords.longitude;

    redirectUrl = "track2.cfm?track=y&GPSLat=" + event.coords.latitude + "&GPSLong=" + event.coords.longitude; 

    gpslat = event.coords.latitude; 
    gpslong = event.coords.longitude; 

}

// If something has gone wrong with the geolocation request
function onGeoError(event)
{
    alert("Error code " + event.code + ". " + event.message);
}

function redirect() 
{ 
    window.location = redirectUrl; 
} 
setTimeout(redirect,10000); 

 </script>
4

1 に答える 1

0

ここでいくつかの問題があります。

1)jay cが言うように、1つはコールバックが1回だけ実行されることです。これを修正するには、setInterval で指定したことを実行するか、リダイレクトの最後にタイマーを再度設定します…</p>

function redirect() {
    window.location = redirectUrl;
    setTimeout(redirect, 10000);
}

2) 場所が変更されていない場合、URL は常に同じです。ブラウザはこれに気づき、URL を更新しない場合があります。ウィンドウのリロード アクションで強制することも、タイムスタンプを付けることで URL の鮮度を保証することもできます。

var currentTime = new Date();
var milliseconds = currentTime.getTime();

redirectUrl = "track2.cfm?track=y&GPSLat=" + event.coords.latitude + "&GPSLong=" + event.coords.longitude + "&time=" + milliseconds;
于 2012-07-28T17:31:33.283 に答える