2015-11-05 2 views
0
    //  var GAP = 1000 * 60 * 60 * 8; 
      var GAP = 1000 * 10; 

      var visted = $cookies.get('surveyVisitedCount'); 

      var timestamp = new Date().getTime(); 
      var oldtime = $cookies.get('surveyTimestamp'); 

      if(oldtime !== undefined) { 
       if((timestamp - GAP) > parseInt(oldtime, 10)) { 
        // increment 
        console.log('Need to increment!'); 
        // increment visits cookie, then check if it's past 3 
        if (visted < 3){ 
         $cookies.put('surveyVisitedCount', visted++); 
         console.log('visted1' , visted); 
        } else { 
         //we add the banner 
         console.log('we add the banner'); 
         console.log('visted2' , visted); 
        } 

       }else{ 
        console.log('dont need to increment'); 
       } 
      } 

      $cookies.put('surveyTimestamp', timestamp); 

     } 

Я пытаюсь добавить баннер с прилавком. Когда пользователь приходит на сайт через определенное время, их просят заполнить опрос. Проблема в том, что я не могу заставить счетчик когда-либо увеличиваться. Что я могу делать неправильно. Благодарю.Как мне сделать счетчик

ответ

0

Вы используете тот же ключ surveyTimestamp как для отметки времени, так и для посещенного счета. Используйте разные клавиши (скажем surveyTimestamp и surveyVisitedCount, и у вас будет хорошо)

+0

Ive изменил его, и он все еще возвращается неопределенной – ronoc4

0

Существует более простой способ реализовать это, что, я думаю, будет делать то, что вы хотите, без использования Date() или файлов cookie.

JavaScript имеет различные функции синхронизации, один из которых - setTimeOut(). Это несколько раз выполняет функцию каждые n миллисекунд. Используя этот подход, нам просто нужно инициализировать переменную таймера в 0 и увеличить его на желаемый интервал. Например, если мы хотим, чтобы увеличить каждую секунду, а затем останавливается, когда он получает до определенного значения (например, 45 секунд):

var timerValue = 0; // Initialize timer to 0. 
var timer; 

function startTimer(timerValue) { 
    var nextIncrement = function() { 
     incrementTimer(timerValue); 
    }; 
    timer = setTimeout(nextIncrement, 1000); // Increments every second (1000 ms = 1 s) 
} 

function incrementTimer(timerValue) { 
    timerValue = timerValue + 1; // This does the actual incrementing. 
    startTimer(timerValue); // Pass the current timer value to startTimer for next increment. 
    console.log(timerValue); // Print values out to the console. 

    // ADDED 
    if (timerValue == 45) { 
     clearTimeout(timer); // Stop the timer. 
     console.log("Show survey."); // Show the survey. 
    } 
    // 

} 

startTimer(timerValue); // Kick off the timer. 
+0

Im только используя приращение, потому что Я установил файл cookie, и он проверяет его каждые 15 секунд, чтобы узнать, выросло ли значение. Когда он доберется до 3, он остановится и покажет обзор – ronoc4

+0

. Вы также должны сделать это с помощью приведенного выше примера. Я изменил код примера, чтобы показать это. – AndroidNoobie

Смежные вопросы