检测用户何时离开网站
Detect when a user leaves a website
我正在尝试创建自己的网站访问库(为了好玩),就像谷歌分析,我可以检测用户何时访问我的网站,他们查看什么页面等
是否有一种方法可以确定用户何时离开页面&/或永远离开网站?
我已经成功地编码(在python中)检测当用户第一次访问我的网站(使用cookie) &如何确定他们查看的页面。但是我不知道我如何才能检测到用户何时离开网站?
在javascript中是否有一种方法(也许我可以检测到页面/url何时发生变化?)。我知道在HTTP中有一个引荐头,告诉我用户来自哪里,也许当用户移动到另一个网站(在我的网站之外),我可以通知这一点(因为我将是那个HTTP请求中的引荐人)?我说的对吗?
可以使用jquery触发:
$(window).bind('beforeunload', function() {
// ajax call perhaps
// triggering a write to db or filesystem...
});
纯javascript方式:
<html>
<head>
<script>
function closeIt()
{
return "Any string value here forces a dialog box to 'n" +
"appear before closing the window.";
}
window.onbeforeunload = closeIt;
</script>
</head>
<body>
<a href="http://www.somewhere.com">Click here to navigate to
www.somewhere.com</a>
</body>
</html>
只要用户遵守规则,onbeforeunload就会起作用。这意味着,关闭一个标签,或关闭窗口,或导航到另一个网站。
然而,你没有办法用javascript可靠地检测这一点,onbeforeunload在许多情况下不会触发,例如关闭浏览器(ctrl+q),浏览器崩溃,历史记录(返回)和opera,某些版本的chrome对onbeforeunload的支持有限。
如果您想以高精度检测它,您必须定期发送Ajax请求,显示用户"仍然活着"。将这些请求注册到数据库或文件中,并按时间顺序进行分析。
所以,如果你每隔20秒对数据库"ping"一次,你可以从非常简单的查询中知道浏览器在一段时间后没有"ping",并确定用户不再在网站上。
您可以将站点上的所有链接标记为内部链接或外部链接。它们必须指向您的站点,然后重定向到由用户选择的位置。在重定向之前,你可以把用户从你的网站上引开。
。
我最好把你的网站上的每个页面的小脚本(说每20-30秒),使一个GET请求到你的网站上的特定url。因此,您可以跟踪每个用户请求的数量
你可以在JavaScript中处理一个卸载事件。例如:
window.onunload = unloadPage;
function unloadPage()
{
alert("unload event detected!");
}
不幸的是,当用户离开当前页面时,没有办法告诉他们实际要去哪里(不像进入页面时的引用)。
一个想法是,在卸载处理程序中设置一个变量(可能在数据库中)(通过AJAX调用或其他方式),然后如果用户在此之后不久进入另一个页面,则删除该变量。无论哪个记录未被删除(或停用-软删除),都是用户实际从您的网站反弹或关闭浏览器之前的最后退出事件。
可以绑定到窗口。
这两种方法都不太可靠。
- 在你离开之前,这个网站如何显示一个整洁的HTML框
- 检测用户关闭标签页或离开网站
- 检查人员是否通过鼠标移动离开网站
- 离开网站时弹出
- 当用户离开我的网站时,将标题附加到页面(他们也会这样做)
- 当用户在Javascript/AngularJS中离开我的网站时,如何提示模态
- 让用户通过网站离开他的屏幕保护程序
- HTML5音频:即使离开网站,音乐也不会停止
- 如何检测用户何时离开网站
- 当有人关闭浏览器或使用php和javascript离开我的网站时,将用户状态设置为脱机
- 导航网站在Chrome中处于全屏状态时会离开全屏
- 如何使用jQuery检查我要离开到另一个网站
- 当用户离开我的网站时显示弹出窗口
- 如何检测用户何时离开您的网站(不包括重新加载)
- AJAX页面加载/历史记录.离开网站后,pushState不能正常工作
- 安全脚本清除缓存,并立即离开网站
- 在使用jQuery离开网站之前警告用户
- 我如何检测用户何时离开我的网站,而不仅仅是去到另一个页面
- JavaScript d3.js在离开网站时保存图形
- “离开网站”警报