2012-03-09 109 views
0

我從頁面(mypage.php)加載內容到DIV(#mydiv)。我從裏面得到的內容的頁面。setinterval在ajax加載後繼續運行

在mypage.php

function refresh_feeds() { 
//bla bla 
} 

$(function(){ 

    feed_timer = setInterval(refresh_feeds, 50000); 

}); 

當我清理#mydiv和負載的內容從另一個頁面(mypage2.php)的setInterval在mypage.php開始內容保持運行。

我的問題是我怎麼能阻止它,當從mypage.php內容被卸載

中怎樣處理卸載mypage.php的事件?

+0

我不明白你在做什麼,但我認爲'clearTimeout(feed_timer);'會幫助你。只需從mypage2.php加載內容即可執行它。 – botzko 2012-03-09 07:25:54

回答

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

這不起作用 – 2012-03-09 07:45:47

+0

控制檯保持日誌記錄1,即使它卸載內容:(它似乎beforeunload綁定不起作用,如果它動態加載 – 2012-03-09 10:49:04

+0

複製代碼並打開控制檯在這個頁面,粘貼並刷新頁面,你會得到像confirm()這樣的兩個選項,您可以看到refresh_feeds()不會被進一步調用! – 2012-03-09 10:54:30

0

你要清楚你的間隔

clearInterval(feed_timer); 

一定要保存feed_timer在全球範圍內

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

$(function(){ 
    clearInterval(feed_timer); 
    feed_timer = setInterval(refresh_feeds, 50000); 
});