温馨提示:视频请点此观看
// 视频原文:
为了更好的掌握用户的需求,我们经常需要统计:
1、统计用户在站点的停留时长
2、收集页面链接的点击数量等
3、统计用户的鼠标行为
但经常会遇到以下问题:
1、统计点击,但点到链接后就页面跳转了;
2、统计的时候发送的数据丢了;
3、统计js还没运行,用户已经关页面了;
4、...
上述的那些问题如果归类的话,可以归为二类:
(1)、js统计脚本未加载;
(2)、页面关闭或跳转时,数据未成功发送;
第一种问题的解决还比较简单,就是直接把js注入到网页头,
让它先加载先运行。
第二种问题的解决方案就有点多样化了,
使用XMLHttpRequest
方法的第三个参数,把它false,就是同步加载了,
这样就可以在readState
为2的阶段,把请求发送出去。
加载一个空的图片,这样可以在浏览器等待的时候,把数据发出去,
上述二种方法,基本都是通过阻塞浏览器,等数据发完之后再跳转。
通过URL传参,其实说来也简单,就是给页面上所有的链接,都添加一些共同的标识,例如[siteId,pageId,modId,linkId...]
,这些id一起用来定义一个链接的位置,这样等用户操作完一系列的页面之后,会形成一条由数组构成的路径,这条路径将在最后的一个页面被用户发送出去。
就是使用window.name
属性,这个值有一个特点,就是页面发生了跳转之后,它的值却不会变化,还可以跨域使用。
但它有个问题,就是会被其它人给覆盖操作了,所以如果要使用它的话,需要对window.name
进行一些封装。
所以需要开发团队进行相应的“约定”。