Javascript逻辑错误

时间:2012-11-19 03:41:14

标签: javascript

我是Java脚本新手,需要快速帮助。这是我的代码:

<html>
<head>
<title> GeoLocation Application </title>
<script>
$counter=0;
while ($counter < 10) {
if (!navigator.geolocation) {
  alert('Your browser does not support geolocation');
  } else {
  navigator.geolocation.getCurrentPosition(success, error);
  document.write("Count ",$counter,"<br>");
  }

  $counter ++;
 }

 function success(position) {
   lat = position.coords.latitude;
   lng = position.coords.longitude;
  alert (lat +','+lng);
  document.write("calling update mysql");
  //document.location='update_java_data.php?lat=' + lat+'&lng='+lng;
  }

  function error(error) {
     alert('an erro occured, error code is '+error);
     }
</script>
</head>
<body>
 <h1> Hello </h1>

</body>
</html>

我试图使用导航器获取坐标10次。但是,当我只看到一个从0到9的计数器显示的快速列表,但只有一次它显示“”调用更新mysql“。 对我而言,这意味着它只执行一次成功功能。

任何想法我怎么能让它获得10次坐标(意味着它也应该调用成功函数10次)?

1 个答案:

答案 0 :(得分:2)

我建议改为使用setInterval函数以指定的时间间隔执行lat / long集合...如果上面的内容成功运行,它可能会快速收集相同的10次。

所以,既然你在没有任何类型的等待/间隔的情况下进行那些函数调用,它们都会在基本相同的时间点亮(0-9计数器显示)...至于只看到'调用更新mysql'一次,我想这与你将窗口的位置更改为不同的URL有关,而其他调用无法到达成功函数,因为你已经有了