2014-03-28 279 views
0

基本上我想在用戶停止在瀏覽器中做任何事情之後像jquery中運行一些代碼,如點擊,滾動。如何知道是否所有的功能已經完成,jQuery是不是忙(正在運行或使用)如何知道用戶是否閒置?

基本上運行代碼只有當用戶處於閒置狀態

+0

你的意思是你要知道,網頁/用戶是理想的? –

+0

@CodingAnt是的,當頁面/用戶是理想的 – user2031456

回答

1

如果我得到你的權利,這就是你要找的

<script> 
    $(function(){ 
    (function(seconds) { 
    var refresh,  
     intvrefresh = function() { 
     clearInterval(refresh); 
     refresh = setTimeout(function() { 
     alert('No activity from user 10 seconds, put your code here !'); 
     }, seconds * 1000); 
     }; 
    $(document).on('click keydown keyup mousemove', function() { intvrefresh() }); 
        intvrefresh(); 
     }(10)); 
    }); 
</script> 
+0

.scroll ? – user2031456

+0

更改爲('點擊keydown keyup mousemove滾動') –

+0

和頁面加載? – user2031456

0

通常你會等到一切都已經加載。這意味着所有元素都在頁面上完成加載(例如,加載的圖像)。這裏沒有什麼可以告訴你沒有JavaScript在後臺運行。

$(window).load(function() { 
    // Do stuff 
}); 
+0

確實.load運行時頁面已加載,然後用戶然後滾動並停止? – user2031456

+0

@ user2031456:請參閱https://api.jquery.com/load/ – Ian

+0

當用戶空閒時基本運行代碼。當頁面加載完成時加載 – user2031456

0
try { 
     var str =$('body').html(); 
    } catch (e) { 
     alert('jquery not used'); 
    } 

做這樣的事情。 jsfiddle

0

我只是回答了here。看看它是否有道理。

TLDR;

您可以underscorejquery更優雅做到這一點 -

$('body').on("click mousemove keyup", _.debounce(function(){ 
    // your code here. 
}, 1200000)) // 20 minutes debounce