2012-03-09 100 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); 
});