oTree Forum >

Time usage mis-recorded after refreshing

#1 by Mike_Zhiren_Wu

Hi Chris and all,

Currently I'm trying to get the time usage data on every single page and give it to subjects as periodic feedback. I find a usable code in the forum while the timer is reset to 0 if I refresh the current page so that the response time is not correctly recorded. I just wonder if there are other ways to achieve this so that the response time can be fully saved even if there can be potential refreshing issue if I run the experiment online.

The script I am currently using is as follows:

<script>
//This bit creates 2 variables, one will function as a timer, the other will hold the timer output. They are set to 0 and -1 here to initialise them, these will not be the final outputs.
var pageTimeElapsed = 0;
var pageTimerID = -1;

//This function captures the timer output. When the timer starts it will increase 'pageTimeElapsed' every second and send this value to the 'timeSpent' variable that will be saved
//When a person moves to the next page, or the page times out, the final value that the timer was on will be saved. The value resets each round/page.
function pageTick() {
  pageTimeElapsed++
  document.getElementById("timeSpent_easy1").value = pageTimeElapsed;
}

//This function automatically starts the timer when the page loads. In this case I want seconds so the interval is set to 1000, but I believe if you set it to 1 then it will count milliseconds - you will need to test this
window.onload = function() {
  if(pageTimerID == -1){
    pageTimerID = setInterval(pageTick, 1000);
  }
};
</script>

Write a reply

Set forum username