2010-07-16 5 views
0

필자는이 코드를 가지고 있으며 어떤 이유에서 Firebug에 따라 $ $. post 함수가 두 번 연속으로 발생합니다 ('저널/날씨'의 경우). "if (navigator.geolocation)"를 제거해도 여전히이 작업을 수행하지만, $ .post 블록을 console.log ('test')와 같은 것으로 바꾸면 한 번만 실행됩니다.

$ .post 함수 앞에 console.log ('test')를 배치하면 내 이벤트가 한 번만 발생합니다. 나는 jQuery로 뭔가 이상하게 진행되고 있다고 가정하고있다. 아무도 아이디어가 없나요?

if (navigator.geolocation) 
    { 
    navigator.geolocation.getCurrentPosition(function(position) 
     { 
     $.post('journal/weather', {latitude: position.coords.latitude, longitude: position.coords.longitude}, function(result) 
      { 
      if (typeof(result.current.temp) != 'undefined') 
       { 
       global.temperature = parseInt(result.current.temp, 10); 
       global.temperature_slider.slider('value', global.temperature); 
       } 
      }, "json"); 
     }); 
    } 

편집 : 좋아, 낯선 여전히, 때로는 때로는 한 번, 두 번 발생합니다. 같은 코드가 어떻게 실행될 때마다 다른 결과를 낼 수 있습니까?

EDIT 2 : 약간의 실험 후, 나는 이것이 Firefox의 버그라고 생각합니다. 왜? 왜냐하면 그것은 내 페이지뿐만 아니라 다른 것들에서도 발생하기 때문입니다. 내 페이지를 새로 고치면 navigator.geolocation.getCurrentPosition의 대략 10 배는 콜백 함수를 시작합니다. 그러나 한순간에 그 일을 그만 둔다. 그리고 일단이 점에 도달하면 getCurrentPosition을 사용하는 다른 웹 사이트에서는 작동하지 않습니다. 그리고이 문제는 Chrome이나 심지어 IE에서도 발생하지 않습니다. 따라서 console.log은 아마도 아직 초기화되지 않는 - 페이지로드가 완료되기 전에 코드 같은 소리

http://groups.google.com/group/mozilla.feedback.firefox/browse_thread/thread/fecc3fb0bad6d0b8

+0

이 코드 블록이 어떻게 호출되는지 알려면 도움이 될 수 있습니다. 그리고 문제는 당신이'getCurrerentPosition'을 사용할 때 발생할 수 있습니다.이 기사를 확인하십시오. http://stackoverflow.com/questions/2707191/unable-to-cope-with-the-asynchronous-nature-of-navigator-geolocation. – qw3n

+0

나는 getCurrentPosition을 올바르게 사용하고 있다고 생각합니다. 적어도 제공된 링크의 답변에 따르면. 그러나 이것을 얻으십시오. 이 코드를 임의의 웹 페이지 (임의의 웹 페이지)에서 Firebug 명령 줄에 넣습니다. navigator.geolocation.getCurrentPosition (function() {Position (획득)};}); 40 초 동안 아무런 반응이 없으면 내 메시지가 나타납니다. Chrome을 사용해 보았는데이 문제가 전혀 발생하지 않습니다. – Nick

답변

0

가 호출 될 수있다 : 구글 검색,이를 발견했다.

코드 코드는 document.ready으로 포장되어 있습니다 (예 :

$ (함수() { 경우 (navigator.geolocation) {... }});

그냥 추측하십시오. 코드가 더 낫다는 문맥에 대해 더 많이 알아야합니다.

희망과 행운을 빕니다.

+0

코드는 함수 대기열의 일부이며 문서가 준비되면 실제로 호출됩니다. – Nick

관련 문제