Я новичок в Ractive.js. Мне нужно реализовать секундомер, который будет работать, даже если я нажму на другую страницу. Мой секундомер работает, но когда я нажимаю на другую страницу, а затем возвращаюсь к текущей странице, секундомер уходит. Может кто-нибудь, пожалуйста, помогите мне в этом, пожалуйста? Вот мои попытки ниже:Сделать секундомер живым между запросами
на мой взгляд >>>
<div class="modal-footer">
<div class="form-group">
<div class="pull-left">
Stopwatch: {{#stopWatch}} {{hours}} h: {{minutes}} m: {{seconds}} s{{/stopWatch}}
</div>
<button id="btnStart" class="btn btn-primary" type="button" on-click="startStopWatch">Start</button>
<button id="btnReset" class="btn btn-secondary" type="button" on-click="startStopWatch">Reset</button>
</div>
<label class="pull-left stopWatch"> Time Spent:</label>
</div>
моя startStopWatch функция >>>
function startStopWatch(ev, cfg) {
var rjs = this || cfg.rjs;
var $btn = $(ev.node);
var btnText = $btn.text();
var sg;
if (btnText === 'Start') {
$btn.html('Stop');
sg = new cmnDt.stopWatch();
sg.start(rjs, sg);
} else if (btnText === 'Stop'){
$btn.html('Start');
sg = ev.context.sw;
sg.stop(rjs, sg);
}
if (btnText === 'Reset' && ev.context.sw) {
sg = ev.context.sw;
sg.reset(rjs, sg);
$('#btnStart').html('Start');
}
}
моя функция секундомера >>>
function stopWatch() {
var currentSeconds = 0;
var currentMinutes = 0;
var currentHours = 0;
var timer;
function start(rjs, sw) {
printTime(rjs, sw);
timer = setInterval(function() {
getTime();
printTime(rjs, sw);
}, 1000);
}
function getTime(rjs) {
currentSeconds = currentSeconds + 1;
if (currentSeconds === 60) {
currentMinutes += Math.round((currentSeconds)/60);
currentSeconds = 0;
} else if (currentSeconds === 60 && currentMinutes === 60) {
currentMinutes = 0;
currentSeconds = 0;
currentHours += 1;
}
}
function printTime(rjs, sw) {
rjs.set({'sw': sw, 'stopWatch.seconds': currentSeconds,
'stopWatch.minutes': currentMinutes, 'stopWatch.hours': currentHours});
}
function stop(rjs, sw) {
clearInterval(timer);
printTime(rjs, sw);
$('.stopWatch').text(' Time Spent: ' + currentMinutes + ' m : ' + currentSeconds + ' s.');
}
function reset(rjs, sw) {
clearInterval(timer);
currentSeconds = 0;
currentMinutes = 0;
currentHours = 0;
printTime(rjs, sw);
}
return {
start: start,
stop: stop,
reset: reset
};
}
благодарит за ваш ответ.Мне нужно отслеживать пользователя, как долго он переходит к приложению после остановки секундомера до остановки. Некоторый исходный код мне очень поможет. –
@SumonBappi, как ваше отслеживание работает для пользователя в деталях? Нужно ли ему/ей нажать кнопку секундомера, переместиться, вернуться, нажать другую кнопку секундомера или запустить секундомер и остановить некоторые события? –
пользователь щелкнет по нему. Затем он должен начинаться, и во время навигации он не остановится и продолжит отсчет. когда пользователь снова вернется на эту страницу, тогда он увидит, как долго он находится в приложении. –