所以我在 jQuery 中有我的加载脚本:
function load() {
$.ajax({
url: '/urltoload.php',
cache: false,
success: function(html){
//do something
}
}
使用 a setInterval
,我如何检查用户是否不在页面上?
所以我在 jQuery 中有我的加载脚本:
function load() {
$.ajax({
url: '/urltoload.php',
cache: false,
success: function(html){
//do something
}
}
使用 a setInterval
,我如何检查用户是否不在页面上?
$(window).focus()
您可以检查浏览器是否处于活动状态。
$(window).focus(function(){
// interval here
});
如果我正确理解了您的问题,您可以使用以下代码检查用户是否“在”页面上以及何时离开:
$(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));