0

したがって、jQuery にロード スクリプトがあります。

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

を使用してsetInterval、ユーザーがページにいないかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

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

UPDATE
タイムアウト関数の疑似コードは次のとおりです。

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

あなたのコメントでは、サブ関数ではなくサブ関数を「回避」するのが最善だと思います$(document).ready()(これまでにタイムアウトを行ったことはありませんがdocument.ready、何が起こるかを試してみることができます;)-この関数は単純に呼び出されると思いますから 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));
于 2013-08-29T17:16:19.710 に答える
1

$(window).focus()ブラウザがアクティブかどうかを確認できます。

$(window).focus(function(){
  // interval here
});
于 2013-08-29T17:15:43.210 に答える