javascript-网站拿到用户的浏览轨迹,按钮点击,表单填写相关行为数据的比较好的方式是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-网站拿到用户的浏览轨迹,按钮点击,表单填写相关行为数据的比较好的方式是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2054字,纯文字阅读大概需要3分钟。
内容图文
这是今天面试的一道面试题,自己想到的比较简单的是通过 cookie 记录用户的相关数据,然后当网页关闭的时候再发送会服务端。网上搜了下 百度统计, GA 的相关资料,貌似也是通过 cookie 记录相关信息,保存数据是通过请求一张图片然后带上不同的参数来实现的。
不知道大家有没有什么其他的好方法。
回复内容:
这是今天面试的一道面试题,自己想到的比较简单的是通过 cookie 记录用户的相关数据,然后当网页关闭的时候再发送会服务端。
网上搜了下 百度统计, GA 的相关资料,貌似也是通过 cookie 记录相关信息,保存数据是通过请求一张图片然后带上不同的参数来实现的。
不知道大家有没有什么其他的好方法。
我不多说了,你自己意会
var _hmt = _hmt || [];
/* 指定要响应JS-API调用的帐号的站点id */
//_hmt.push([ '_setAccount', 'XXXXXXXX' ]);
// 用于发送某个指定URL的PV统计请求,通常用于AJAX页面的PV统计。
// _hmt.push(['_trackPageview', pageURL]);
// 用于触发某个事件,如某个按钮的点击,或播放器的播放/停止,以及游戏的开始/暂停等。
// _hmt.push(['_trackEvent', category, action, opt_label, opt_value]);
// 用户访问一个安装了百度统计代码的页面时,代码会自动发送该页面的PV统计请求,如果不希望自动统计该页面的PV,就可以使用本接口。主要用于iframe嵌套页面等情况。
// _hmt.push(['_setAutoPageview', false]);
(function() {
//加载百度的统计代码
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?XXXXXXX";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
(function() {
function doMonitorForDataTrack(target) {
var target = target;
var _track = target.getAttribute("data-track");
if (typeof (_hmt) != "undefined" && _track != '') {
if (_track.indexOf("_hmt.push") > -1) {
eval(_track);
} else {
var _trackArr = _track.split('.');
if (_trackArr.length < 2) return;
var category = 'Click';// 必填项,参数为字符串
var action = '';// 必填项,参数为字符串
var label = '';// 可选,参数为字符串
/**当只有一个分割字符,
* 例如 data-track="index.10001",执行函数 _hmt.push(['_trackEvent', 'Click', 'index', '10001‘])
* */
if (_trackArr.length == 2) {
category = 'Click';
action = _trackArr[0];// 必填项,参数为字符串
label = _trackArr[1];// 可选,参数为字符串
}
/**当有超过两个或两个以上分割字符,
* 如 data-track="songli.BTN.担保交易",执行_hmt.push(['_trackEvent', 'songli', 'BTN', '担保交易‘]);
* 如 data-track="songli.BTN.担保交易.1002" ,执行_hmt.push(['_trackEvent', 'songli', 'BTN', '担保交易.1002‘]);
* */
else {
category = _trackArr.shift();// 必填项,参数为字符串
action = _trackArr.shift();// 必填项,参数为字符串
label = _trackArr.join('.');// 可选,参数为字符串
}
_hmt.push([ '_trackEvent', category, action, label ]);
}
}
}
function addEvent(obj, type, fn) {
if (obj.attachEvent) {
obj['e' + type + fn] = fn;
obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
obj.attachEvent('on' + type, obj[type + fn]);
} else
obj.addEventListener(type, fn, false);
}
var _elemArr = document.getElementsByTagName('A'), _elemLen = _elemArr.length;
var _body = document.body || document.documentElement;
addEvent(_body, "click", function(event) {
var event = event ? event : window.event;
var target = event.srcElement ? event.srcElement : event.target;
if (target.getAttribute('data-track')){
doMonitorForDataTrack(target);
} else if (target.nodeName == "IMG" && target.parentNode.getAttribute('data-track')) {
doMonitorForDataTrack(target.parentNode);
}
});
})();
浏览轨迹,按钮点击可以再服务端写到mongo里头,表单js监听dom了
这些个统计存在Cookie里面的一般只是一些用于识别用户的ID值吧。用户的操作记录数据应该是立刻发送到统计服务器上去的,没必要在本地保存一下再发送,这类的数据量很少,不会造成拥堵。至于怎么发送过去,大部分都是采用你所理解的简单的加载一个图片,通过参数把数据传上去。
“当网页关闭的时候再发送会服务端”,这个是有问题额,浏览器关闭的时候你的JS基本没法任何事情了。
内容总结
以上是互联网集市为您收集整理的javascript-网站拿到用户的浏览轨迹,按钮点击,表单填写相关行为数据的比较好的方式是什么?全部内容,希望文章能够帮你解决javascript-网站拿到用户的浏览轨迹,按钮点击,表单填写相关行为数据的比较好的方式是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。