Qualtrics,Javascript精确计时器使用时间花费在一个页面上

Qualtrics & Javascript Precise Timer Using Time Spend on a Page

本文关键字:一个 Javascript 计时器 时间 Qualtrics      更新时间:2023-09-26

我正在做一个使用质量的实验研究,不幸的是我对编码完全陌生。在我的实验中,一组问题应该在一段时间后结束(在这个例子中是50秒)。到目前为止,我一直在使用一个解决方案(我在这里发现:https://research-it.wharton.upenn.edu/uncategorized/qualtrics-loop-merge-tips/),它看起来相当整洁,使用一个空白嵌入变量"test_time",显示逻辑和以下javascript代码,我复制到块的每个页面:

Qualtrics.SurveyEngine.addOnload(function()
{
     var elapsed = Date.now() - Number("${e://Field/test_time}");
     if (elapsed >= 50000){
     Qualtrics.SurveyEngine.setEmbeddedData("test_time", 0);
}  
});

然而,在导出的数据中,当总结我所包含的计时问题的信息时,我发现人们实际可以花在区块问题上的时间变化很大(从30秒到近50秒)。我猜这是由于脚本使用时钟的时间,而不管网络连接不良或浏览器速度慢造成的延迟。

然而,对于我的项目来说,重要的是人们实际上有相同的时间来完成任务。我怀疑我可以使用计时问题的信息,但不知何故我无法在Javascript中访问它们。另一个想法是记录出现的页面和点击下一个按钮之间的差异。

我感谢你的任何想法和投入!

使用内置的内嵌变量Q_TotalDuration,它是以秒为单位的经过的调查时间。将调查流程中区块的开始时间设置在区块之前:

startBlock = ${e://Field/Q_TotalDuration}

然后你的JavaScript变成:

var elapsed = parseInt("${e://Field/Q_TotalDuration}") - parseInt("${e://Field/startBlock}");
if(elapsed >= 50) {
  //do something here
}

我不明白当达到时间限制并且time_test在原始代码中设置为零时会发生什么。它不会对当前页面产生任何影响。似乎您应该设置一个超时函数,以便在达到时间阈值时单击Next按钮。