Сделайте это после посещения X количества страниц на сайте - PullRequest
0 голосов
/ 01 октября 2010

Есть ли простой способ отследить, сколько страниц посетило пользователь на вашем сайте с помощью Javascript (предпочтительно jQuery)?

Мне нужно выполнить функцию после того, как пользователь посетил более 5 страниц наsite.

Я думал о сохранении window.location.href в переменной и проверке его на соответствие следующей странице.Если этого не произойдет, я зарегистрирую это как изменение одной страницы и так далее.Это звучит теоретически для меня, но, пожалуйста, направьте меня, если я на неправильном пути.

Ответы [ 3 ]

1 голос
/ 01 октября 2010

jQuery не имеет встроенных функций cookie.

Хотя я полностью согласен с тем, что это следует делать на стороне сервера, и я бы никогда этого не сделал сам ... Вы можете сделать это полностью с помощью простого старого JavaScript.

Я собрал функцию, которая должна соответствовать вашим целям. Он возвращает истину, только если они посетили 6 страниц, каждая из которых отличалась от предыдущей.

function mySiteTracker() {
    var pageCounter = readCookie('pageCounter');
    var pageLast = readCookie('pageLast');
    var pageInt = 0;
    if (pageCounter) {
        pageInt = parseInt(pageCounter);
        if (pageInt > 5) return true;
        if (window.location.href == pageLast) return false;
    }
    createCookie('pageCounter',(pageInt + 1));
    createCookie('pageLast',window.location.href);
    return false;
}


//The following 2 functions providing the get/set 
//functionality are MODIFIED from: http://www.quirksmode.org/js/cookies.html

function createCookie(name,value) {
    document.cookie = name+"="+value+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

Я специально не проверял это ... дайте мне знать, если у вас есть какие-либо проблемы.

1 голос
/ 01 октября 2010

Если вы хотите отслеживать пользователя по страницам на вашем сайте, вам лучше всего использовать файлы cookie. Хотя для этого вам не нужен jquery, есть хороший плагин jQuery, который помогает вам управлять файлами cookie. (http://code.google.com/p/cookies/wiki/Documentation).

При использовании файлов cookie на каждой странице вы запускаете JavaScript, который проверяет наличие файла cookie сайта. Если этого не существует, вы создадите его со значением 1. Если оно существует, вы увеличите его значение. Затем, когда вы видите значение 5, вы знаете, что они посетили 5 страниц.

0 голосов
/ 01 октября 2010
$(document).ready(
function(){
    if ($.cookie('userViews')) {
        var views = parseInt($.cookie('userViews')) + 1;
    }
    else {
        var views = 1;
    }

    $.cookie('userViews',views,{expires:30});

    if (views > 5) {
        // do whatever you want to do after 5 views.
    }

}
);

Приведенный выше код работает, только если используется плагин jQuery cookies .

Стоит отметить -perhaps очевидным - указать, что любое решение на основе JavaScript подвержено вмешательству пользователя, сценарии могут быть изменены, файлы cookie изменены и так далее. Если вам требуется, чтобы это было как минимум относительно защищенное решение 1 , то решение на стороне сервера (с использованием любого языка сценариев на стороне сервера, который вы предпочитаете), вероятно, будет лучшим подходом.

<ч />
  1. Очевидно, что серверное решение для подсчета представлений может также быть легко игровым, особенно потому, что F5 так легко доступен.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...