2011-09-30 93 views
0
window.onbeforeunload = function() { 
    return $j.ajax({ 
     url: "/view/action?&recent_tracking_id=" + $recent_tracking_id + "&time_on_page=" + getSeconds() 
    }); 
} 

这个我有什么,但它返回与[对象的对象]如何在页面卸载/离开时发送AJAX请求?

我怎么只执行了AJAX的警告?

注意:当我只是不返回任何东西时,服务器不显示它正在接收ajax请求。

回答

1

你不需要返回任何东西,只需触发ajax调用。

window.onbeforeunload = function(e) { 
    e.preventDefault(); 
    $j.ajax({ url: "/view/action?&recent_tracking_id=" + $recent_tracking_id + &time_on_page=" + getSeconds() 
    }); 
} 

如果您正在使用jQuery,你可以尝试,而不是绑定到.unload()事件。

+0

preventdefault?这将是非常方便,如果这将从onbeforeunload工作,但我无法想象它会.. – GolezTrol

+0

@GolezTrol它不会伤害。它只能在可能的情况下取消。 – scottm

1

onbeforeunload允许您返回一个字符串,该字符串显示在'您要离开'确认中。如果您不返回任何内容,该页面将正常退出。在你的情况下,你返回jQuery ajax方法返回的jqXHR对象。

您应该执行Ajax调用并不返回任何内容。

0

为什么你将函数的引用返回到全局池?它应该是这样的:

window.onbeforeunload = function() { 
$j.ajax({ 
    url: "/view/action?&recent_tracking_id=" + $recent_tracking_id + "&time_on_page=" + getSeconds() 
}); 
} 
0

据我所知,onbeforeunload函数只会返回一个警报。这是为了防止几年前的恼人的弹出窗口。

我正在建立一个聊天客户端,我唯一的办法就是做一个这样的事情,就是做一个setInterval函数来更新时间戳,然后检查超时用户并删除它们。用户这种办法,didnt“入住”一定时间内会从房间的其他用户仍然登录被删除。

不漂亮,还是比较理想,但没有获得成功。