2012-03-09 3 views
0

Загружаю содержимое в DIV (#mydiv) со страницы (mypage.php). Страница, на которой я получаю контент, имеет javascript внутри.setinterval продолжает работать после ajax load

В 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

ответ

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); 

обязательно сохранить feed_timer в глобальном масштабе

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

$(function(){ 
    clearInterval(feed_timer); 
    feed_timer = setInterval(refresh_feeds, 50000); 
}); 
Смежные вопросы