时间过得真快,很早之前打算写一个系列,现在一晃,居然二十天就已经过去了。这些天让其他事情给耽搁了,今天提笔,却有点发觉状态已有些不如之前。
还是废话少说,直接入主题了。从上篇中,我们即将要做的一个模块的核心功能就是把每一个登陆用户对站点的每一次访问记录跟踪下来,也就是一点,用户访问某一张网页是从什么时候开始的,到什么时候离开的。
说起用户访问某一张网页是从什么时候开始的,这个大家应该都很容易想到的,也很简单实现的,只要在每次网页请求的时候在数据库记录以下就可以了,但是用户是什么时候关掉浏览器离开网页服务器怎么能知道呢?
没错,单纯的在服务器端,我们是无法获取到该信息的,但是我们可以使用JavaScript来进行配合。在很多网站中,比如说Wordpress,也比如说Gmail,当我们在写文章或写邮件而没有保存时,如果把网页关掉,这时便会弹出对话框提示你的草稿还没保存,是否真的要离开呢?既然他们可以在这里弹出对话框,那我们是不是也可以在这时把用户退出网页的这次操作发送到服务器呢?
Google是个好东西,我们很快便可以找到了这是使用了Javascript的onbeforeunload事件,这样,我们便可初步定下方案了:
- 在网页加载完成时,记录下时间
- 在onbeforeunload事件中,获取到用户关闭网页的时间
- 将这两个数据一并发送至服务器某接口
- 完成之后函数返回,关闭网页
但是该方案是不是真的可行呢?onbeforeunload中能做这些事情不?方案只是想当然,是否可行,还得进行测试探索。