javascript - HTML5 + JS : Tracking user interaction

标签 javascript html user-interaction

<分区>

跟踪网站上用户交互的好方法是什么?然后我的意思是捕获所有内容,例如:

  • 滚动
  • 点击
  • 移动光标
  • 发出输入

当然,大量的 HTTP post/get 请求可能会让用户感到不快。 我正在寻找一种既不会打扰用户又不会丢失太多数据的方法。

我希望有人对此有一些经验!

最佳答案

免责声明:很多用户都反对像这样监视您的用户,我建议不要在您的用户不知道您在做什么的情况下这样做。

也就是说,您可以将事件监听器添加到您想要监视的事件中。然后先将它们存储在本地,并且仅在给定的时间间隔或用户离开页面时才将它们存储在您的服务器端。这是一个简单的示例(Fiddle:http://jsfiddle.net/8ucSV/):

var Spy = (function (register, undefined) {
    var eventStore = [],
        // you can also add other things like "mousemove" here…
        events = ['click'];

    var store = function (type, data) {
        eventStore.push({
            type: type,
            data: data
        });
    };

    events.forEach(function (event) {
        register(event, function (data) {
            store(event, data);
        }, false);
    });

    return {
        dump: function () {
            console.log(eventStore);
        },

        store: function () {
            // do whatever you wanna do here…
        }
    };
})(document.addEventListener);

显然,除了可以通过 addEventListener 注册的事件之外,您还可以添加更多抽象来监视其他事物。我也不太关心这里的浏览器兼容性。

关于javascript - HTML5 + JS : Tracking user interaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19743932/

相关文章:

javascript - 为什么 jQuery Focus 函数第二次不起作用?

user-interface - 在哪里存储用户界面选择?

javascript - 如何确定 connectNative 是否失败或成功

javascript - 如何在 JavaScript 和 Ruby 中对原始 URL 进行编码/解码以在两者中获得相同的值?

html - 用移相器制作隐形 Sprite

javascript - 如何在 meteor 中获取表单值?

安卓 : Touch events in layout after animation

ios - SWRevealViewController:显示后视时删除前视交互

javascript - 无法将字符串转换为 float

javascript - 在 CSS 值中使用类名