Ответы пользователя по тегу JavaScript
  • Как сделать обработку данных без перезагрузки страницы?

    @Louter
    Программист
    Форму отправляете через AJAX:
    $.ajax({
            url: 'some-url',
            type: 'post',
            dataType: 'json',
            data: $('form#myForm').serialize(),
            success: function(data) {
                       // тут перезагружаете страницу
                       // можно добавить проверку ответа 
                       // (например, если всё ок, а если нет, то выводить ошибку)
                       location.reload();
                     }
        });
    Ответ написан
    Комментировать
  • Как правильно написать счётчик посещений работающий на стороннем сайте?

    @Louter
    Программист
    Предполагаю, что серверная сторона у вас всё-таки есть.

    Правильно, чтобы этот js создавал iframe указывающий на ваш сайт и размеры фрейма.
    Это даёт: возможность получать статистику по пользователям (сколько страниц посещено, какие, какой приток посетителей, увидевших баннер), простую заменяемость (содержимое фрейма легко может быть заменено на другой баннер централизованно). Так же используя разный URI доступа к своему ресурсу вы можете передавать нужные вам данные (параметры страницы, и т.д.). Устанавливая пользователям куки вы получите отслеживание помимо действий на сайте с баннером, ещё и на смежных сайтах, где есть ваши баннеры. И это будет полезно при анализе поведения пользователей.

    Итого: нужен js, генерирующий URL и создающий iframe с указанными размерами и сгенерённым URL.
    Ответ написан
    2 комментария
  • Как отследить что пользователь покинул страницу?

    @Louter
    Программист
    Для начала конечное тз (внести правки):
    После открытия сайта site.com в N вкладках отслеживать, когда N = 0, т.е. нет вкладок с сайтом site.com. При наступлении события N = 0 производить логаут.

    Пингуйте localStorage:
    суть скерстить ежа с ужом, альфабанк и идея со сторейджем мне подсказали кое-что.
    ping = getLS('ping'); // Когда открывается site.com мы смотрим из LS некую виличину (lastPingTime или для простоты просто ping). Получаем число)
    currentTime = (new Date()).getTime(); //Получаем текущую метку времени
    delta = 100; // количество миллисекунд для тревоги
    interval = 42; // я ставлю 1/24-ую секунды, а так рекомендуемый интервал 20--50. Нет, не нагрузит. Да, интервал.
    if (currentTime - delta > ping) { // если было перед этим закрытие или в первый раз
    // я бы сбросил куки, прочую гадость, тут тело для логина
    } else {
    // если всё замечательно и юзер не закрывал нашу вкладку
    }
    setLS('ping', currentTime); // обновляем значение ping и
    setInterval(function () { // добавляем таймер
      setLS('ping', currentTime); 
    }, interval);
    


    Суть, думаю, ясна. Я всё свёл к чему, что js и так всем правит. Если нужна безопасность, (а то вдруг юзер закроет вкладку, выключит js и снова откроет), то можете там же юзать и ключи безопасности, наподобии альфы или вообще всю страницу строить на основе ajax-ответов.
    Так же вы можете юзать куку установив время жизни = 1с, и обновляя его, но на сколько это нагруженно я не знаю. Дерзайте!)
    Ответ написан
    Комментировать