Rumah  >  Artikel  >  pembangunan bahagian belakang  >  javascript - 网站拿到用户的浏览轨迹,按钮点击,表单填写相关行为数据的比较好的方式是什么?

javascript - 网站拿到用户的浏览轨迹,按钮点击,表单填写相关行为数据的比较好的方式是什么?

WBOY
WBOYasal
2016-08-04 09:20:021279semak imbas

这是今天面试的一道面试题,自己想到的比较简单的是通过 cookie 记录用户的相关数据,然后当网页关闭的时候再发送会服务端。

网上搜了下 百度统计, GA 的相关资料,貌似也是通过 cookie 记录相关信息,保存数据是通过请求一张图片然后带上不同的参数来实现的。

不知道大家有没有什么其他的好方法。

回复内容:

这是今天面试的一道面试题,自己想到的比较简单的是通过 cookie 记录用户的相关数据,然后当网页关闭的时候再发送会服务端。

网上搜了下 百度统计, GA 的相关资料,貌似也是通过 cookie 记录相关信息,保存数据是通过请求一张图片然后带上不同的参数来实现的。

不知道大家有没有什么其他的好方法。

我不多说了,你自己意会

<code>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 </code>

浏览轨迹,按钮点击可以再服务端写到mongo里头,表单js监听dom了

这些个统计存在Cookie里面的一般只是一些用于识别用户的ID值吧。用户的操作记录数据应该是立刻发送到统计服务器上去的,没必要在本地保存一下再发送,这类的数据量很少,不会造成拥堵。至于怎么发送过去,大部分都是采用你所理解的简单的加载一个图片,通过参数把数据传上去。

“当网页关闭的时候再发送会服务端”,这个是有问题额,浏览器关闭的时候你的JS基本没法任何事情了。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn