2011-07-02 8 views
0

아래 스크립트를 사용하여 웹캠 이미지를 새로 고침합니다. 18 초마다 새로 고침하고 8 회 새로 고침하면 새로 고침이 중지됩니다. 나는 그것을 정확하게 취소하지 않는다는 느낌이 들었습니다. 왜냐하면 언젠가 시간이 지나면 로딩 표시가 헤이 와이어로 바뀌기 때문입니다. 내 대본에 문제가 있습니까?jquery asynch로 이미지 새로 고침

var count = 0; 
function CamRefresh() { 
    count++; 
    if(count > 8) clearInterval(timeout); 
    updatecam(); 
} 
var timeout = setInterval(CamRefresh, 18000); 

}); 

function updatecam() { 
$('#loading').show('fast'); 
$('#activecam').attr('src', 'http://weeg.binaer.no/weeg_com/nesjordet.jpg?time='+Date()); 
$('#loading').hide('slow'); 
$('#currentswitch').hide(1500); 
$('#dayswitch').show(); 
} 
+0

무엇이 있나요? – Dogbert

답변

1

을 - 거기에 stop() 사슬로 묶을거야. 시도해보십시오.

function updatecam() 
{ 
    $('#loading').show('fast'); 
    $('#activecam').attr('src', 'http://weeg.binaer.no/weeg_com/nesjordet.jpg?time='+Date()); 
    $('#loading').stop().hide('slow'); 
    $('#currentswitch').hide(1500); 
    $('#dayswitch').show(); 
} 

src 속성을 설정하는 것만으로 이미지가 실제로로드 될 때까지 대기하지 않습니다. 이를 위해 다음과 같이 하중 함수를 사용할 수 있습니다 :

$('#activecam').attr('src', 'http://weeg.binaer.no/weeg_com/nesjordet.jpg?time='+Date()) 
       .load(function() 
       { 
        $('#loading').stop().hide('slow'); 
        $('#currentswitch').hide(1500); 
        $('#dayswitch').show();  
       }); 
1
var timeout = setInterval("CamRefresh()", 18000); 

도 나는 여분의 }); 아마 setInterval이 찾고있을 것이다 어디 전역 범위에 아닌 count VAR을두고 있다고 생각한다. 어느 있는지 count 글로벌 범위에 만들거나 당신은 다음과 같이 할 수있다 : 나는 이전의 애니메이션이 아직 완료되지 않은 경우 updatecam() 기능에 loading 요소의 애니메이션 타이밍 문제가있는 것으로 의심

function CamRefresh() { 
    if (!CamRefresh.count) CamRefresh.count = 0; 
    CamRefresh.count++; 
    if(CamRefresh.count > 8) clearInterval(timeout); 
    updatecam(); 
} 
+0

새로운 Camrefresh가 작동하지 않습니다. – mark