2012-03-09 3 views
0

페이지 (mypage.php)에서 DIV (#mydiv)에 컨텐츠를로드합니다. 내가 콘텐츠를 얻을 페이지 안에 자바 스크립트가 있습니다. mypage.phpajax로드 후에 setinterval이 계속 실행됩니다.

function refresh_feeds() { 
//bla bla 
} 

$(function(){ 

    feed_timer = setInterval(refresh_feeds, 50000); 

}); 

내가 mypage.php에서 시작 다른 페이지 (mypage2.php), setInterval을에서 #mydiv로드 콘텐츠의 내용을 청소에서

실행 유지합니다.

내 질문에 mypage.php에서 콘텐츠가

또는

가 어떻게 mypage.php의 이벤트를 언로드 처리 할 수 ​​있습니다를 언로드 될 때 내가 그것을 막을 수있는 방법인가?

+0

내가 이해하지 못했다 위해 콘솔에서 확인하시기 바랍니다 글로벌 범위에서 feed_timer을 저장해야합니다 당신의 간격을 취소해야 당신이하고있는 일은'clearTimeout (feed_timer);이 도움이 될 것입니다. 그냥 mypage2.php에서 내용을로드 할 때 실행하십시오. – botzko

답변

0
function refresh_feeds() { 
    console.log(1); 
} 

$(function() { 
    window.feed_timer = window.setInterval(refresh_feeds, 100); 
}); 

$(window).bind("beforeunload",function() { 
    window.clearInterval(window.feed_timer); 
    window.feed_timer = null; 
    return 1; 
}); 

+0

이 작업이 없습니다 –

+0

콘솔에서 내용을 언로드하더라도 콘솔에 계속 로깅 1이 표시됩니다. (beforeunload 바인딩이 동적으로로드되면 작동하지 않는 것처럼 보입니다. –

+0

이 코드를 복사하고이 페이지에서 콘솔을 열고 페이지를 새로 고침하면 confirm()과 같은 두 가지 옵션은 refresh_feeds()가 더 이상 호출되지 않는다는 것을 볼 수 있습니다! –

0

당신은

clearInterval(feed_timer); 

1
var feed_timer; 
function refresh_feeds() { 
    //bla bla 
} 

$(function(){ 
    clearInterval(feed_timer); 
    feed_timer = setInterval(refresh_feeds, 50000); 
}); 
관련 문제