2014-06-21 75 views
0

我想告诉当用户在我的网站上为不同的网站(或关闭浏览器)离开页面或为我的网站上有一个不同的页面。 onbeforeload()不会做出这种区分。有没有另一种方式使这可能与JavaScript?我只有在用户永久离开时才会触发脚本,而不是简单地从我的网站上的页面A转到页面B.检测访问者是否正在离开网站或访问网站上的其他页面onbeforeunload

+0

Google Analytics为您提供开箱即用的信息。 –

+1

您可以使用pushState检测将网站离开您的网站的用户,然后推断出那些没有出现的用户正在离开或有旧的浏览器。 –

+0

我需要能够在用户完全离开网站时更新数据库中的值,以实现访问者跟踪以外的功能。 @LukePeterson – user2250471

回答

0

这样做的通用模型(或者至少我认为这很常见)是给用户一个唯一的ID,它保存在一个会话变量或一个cookie中,并且你输入一个数据库表该ID。每次用户访问另一个站点时,都会将此ID发送到服务器(通过使用AJAX的脚本或将ID保存到会话变量中,您可以只在服务器上进行检查),并将当前时间保存到数据库中。

然后,您需要运行一个后台程序,然后例如每分钟检查用户是否处于非活动状态,比如7分钟。如果他是你,他可以相对确定他已经离开了。

如果确实需要更新数据库,可以降低到例如1分钟,并每隔30秒发送一次ajax调用以更新数据库时间戳。