2013-08-29 1 views
0

Так у меня есть сценарий загрузки в JQuery:JQuery нагрузки(), когда на другой вкладке

function load() { 
    $.ajax({ 
     url: '/urltoload.php', 
     cache: false, 
     success: function(html){ 
      //do something 
     } 
    } 

Использование setInterval, как я могу проверить, если пользователь не на на странице?

+0

Я отформатировал кода, но вам не хватает ');' и '}' от конца. –

+2

Вы не можете, но вы можете проверить, активно ли [окно] (http://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window- это-не-настоящее-активный). – adeneo

ответ

1

Если я правильно понимаю ваш вопрос, вы можете проверить, если пользователь «на» странице и когда оставить его с помощью следующего кода:

$(document).ready(function(){ 
    $([window, document]).focusin(function(){ 
     //Your logic when the page gets active 
    }).focusout(function(){ 
     //Your logic when the page gets inactive 
    }); 
}); 

Другое решение, может быть, немного больше «замысловатый» - проверять движения мыши (http://api.jquery.com/mousemove/#fn) каждые N секунд.

Если у вас есть проблемы кросс-просмотра, вы можете проверить этот ответ, который дает хорошее решение для Дифференц браузеров: https://stackoverflow.com/a/1060034/1720344

UPDATE
псевдокод для функции таймаута заключается в следующем:

setTimeout(function() { 
     // Do something after 2 seconds 
}, 2000); 

К вашим комментариям, я думаю, лучше всего «обойти» подфункцию, а не $(document).ready() (я еще не делал этого раньше, тайм-аут document.ready, но вы можете попробовать и посмотреть, что это будет;) - I b elieve, что эта функция просто вызываются после N секунд от document.ready)

С таймаутом 2 секунды, вы можете сделать что-то подобное (но я не проверял):

$(document).ready(setTimeout(function(){ 
     $([window, document]).focusin(function(){ 
      //Your logic when the page gets active 
     }).focusout(function(){ 
      //Your logic when the page gets inactive 
     }); 
    }, 2000)); 
+0

@damosier, может ли это быть превращено в функцию с setTimeout на document.ready? – user2166538

+0

@jordanzhninja Я дал вам возможное решение, но я не тестировал его – damoiser

+0

ok thankan yougen, если честно, я понятия не имею, как сделать то, что я пытаюсь сделать, потому что мне нужно название страницы, чтобы изменить, когда приходит новый комментарий (найденный в клиенте mibbit.com ajax irc), но я не знаю, как – user2166538

1

С помощью $(window).focus() вы можете проверить, активирован ли браузер.

$(window).focus(function(){ 
    // interval here 
});