jQuery load()在不同的选项卡上

时间:2013-08-29 17:10:35

标签: php javascript jquery html jquery-load

所以我在jQuery中加载了我的加载脚本:

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

使用setInterval,如何检查页面上是否有用户?

2 个答案:

答案 0 :(得分:1)

使用$(window).focus(),您可以检查浏览器是否处于活动状态。

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

答案 1 :(得分:1)

如果我正确理解了您的问题,您可以检查用户是否“在页面上”,并在保留时使用以下代码:

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

另一种解决方案,可能更复杂一点,就是每N秒检查一次鼠标移动(http://api.jquery.com/mousemove/#fn)。

如果您遇到跨浏览问题,可以查看此答案,为不同的浏览器提供良好的解决方法:https://stackoverflow.com/a/1060034/1720344

<强>更新
超时函数的伪代码是:

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

根据你的评论,我认为最好“围绕”子功能,而不是$(document).ready()(我之前没有做过,盯着document.ready,但是你可以试试看看是什么它会发生;) - 我相信这个函数在document.ready

的N秒后调用很简单

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