仅对跟踪像素加载一次(每位访问者点击一次)

时间:2014-09-22 21:46:54

标签: javascript jquery

我想要在用户点击我网站上的某个元素(clk类)时加载跟踪像素。

我几乎没有任何jquery知识,所以我提出了这个代码:

  $(".clk").click(function(){
    $('<img src="/images/track.gif" width="1" height="1">').appendTo("body");
  });

首先,那还不错吗? (浏览器是否有可能预装图像?我当然不想要这样做)

其次,只有第一次点击才能获得此信息。我不想跟踪来自同一访问者的该元素的任何额外点击(尽管不是通过IP - 我想我想在每个会话中执行此操作,这意味着如果窗口已关闭?还是应关闭整个浏览器?) 。

我应该在代码中添加什么才能使其以这种方式工作?

2 个答案:

答案 0 :(得分:0)

浏览器有时会扫描JS并查找URL。您可以很容易地将其更改为更像:

var loaded = false;
$(".clk").click(function(){
    if(loaded === false) {
        loaded = true;
        $('<img src="/images/track.gif?param=' + Date.now() + '" width="1" height="1" />').appendTo("body");
    }
});

这应解决浏览器预加载和已经点击的问题&#34;的问题。您可以删除URL中的查询参数,但如果浏览器对此URL进行任何预取或caxginh,我会感到非常惊讶。

答案 1 :(得分:0)

我认为@Jessie A. Morris的例子还不错,但是为了确保浏览器不会缓存跟踪图像,我会亲自使用一些更随机的字符串(unix时间可以是一个好的开始)。

另一件事是 - 我们是否要跟踪每个会话或每个浏览器/ pc / ...的用户?

使用一些cookie&amp;&amp;那么HTML5 localstorage是合适的(存在许多JQuery插件)......