2017-06-10 1 views
-1

Ich möchte, dass meine Seite werden nur einmal geladen werden, was geschieht, ist es kontinuierlich auf Nachladen hält, bitte helfen Sie mir, dieses Problem zu lösen.Ich möchte die Seite geladen werden nur einmal

Ich möchte, dass der Code sofort ausgeführt wird, während die Seite geladen wird, aber ich möchte nicht, dass sie neu geladen wird, sie lädt meine Seite weiter.

Alles funktioniert einwandfrei, außer dass Nachladeproblem.

<!DOCTYPE html> 

<html> 

<head> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

</head> 

<body onload="getLocation()"> 

<script> 

var x = document.getElementById("demo"); 

function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(redirectToPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function redirectToPosition(position) { 
    window.location='j3.php?lat='+position.coords.latitude+'&long='+position.coords.longitude; 
} 
</script> 

<?php 

$lat=(isset($_GET['lat']))?$_GET['lat']:''; 
$long=(isset($_GET['long']))?$_GET['long']:''; 

$url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" . $lat . "," . $long; 

function get_data($url) { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 

$returned_contents = get_data($url); 

$returned_contents_array = json_decode($returned_contents, true); 
$results = $returned_contents_array['results']; 

foreach($results as $result) { 

    echo $result['address_components'][0]['long_name'] . ", <br>"; 
} 

?> 

</body> 
</html> 
+0

Jedes Mal, wenn die Seite in einem Browser geladen wird, der Geolokalisierung unterstützt, führen Sie 'redirectToPosition' aus, das einen neuen Speicherort einrichtet, die Seite neu lädt und' redirectToPosition' ausführt, die einen neuen Speicherort einrichtet, die Seite neu lädt und 'redirectToPosition' ausführt Das legt einen neuen Speicherort fest, der die Seite neu lädt und 'redirectToPosition' ausführt, die einen neuen Speicherort einrichtet, die Seite neu lädt und' redirectToPosition' ausführt, die einen neuen Speicherort einrichtet, die Seite neu lädt und 'redirectToPosition' ausführt, die einen neuen Speicherort festlegt , das lädt die Seite neu und ... – some

Antwort

0

Wie wäre es zu überprüfen, ob die Koordinaten innerhalb der Funktion gesetzt werden:

function getLocation() { 
    <?php if (!isset($_GET['lat']) || !isset($_GET['long'])) { ?> 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(redirectToPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
    <?php } ?> 
} 

diese Weise, wenn beide der Koordinaten Parameter bereits eingestellt sind, wird die Funktion Körper leer sein und nichts tun .

+0

Wow, Du bist ein toller Mann, super einfache Lösung, vielen Dank billynoah;) –

Verwandte Themen