Учитывая, что проблема заключается в том, что ваша функция запускается несколько раз и увеличивается при каждом обновлении / обновлении страницы, я бы рекомендовал добавить проверку работоспособности в вашу функцию:
var test = 0;
var running = running || false;
function go() {
if (running) {
// if an instance of go() is already running, the function quits
return false;
}
else {
running = true; // as the test variable survives I assume this will, too
test = test + 1;
setTimeout(go, 1000);
}
}
go();
Поскольку вполне вероятно, что test
будет перезаписываться при каждом обновлении страницы, я бы рекомендовал, чтобы назначение не перезаписывало ранее существовавший счет:
var test = test || 0;
var running = running || false;
function go() {
if (running) {
// if an instance of go() is already running, the function quits
return false;
}
else {
var running = true; // as the test variable survives I assume this will, too
test = test + 1;
setTimeout(go, 1000);
}
}
go();
Имейте в виду, что вы можете просто использовать наличие переменной test
, чтобы определить, работает ли функция в настоящее время или нет, но я не знаю, будете ли вы использовать ее для других целей. выбран для создания другой переменной для этой цели (которая должна содержать либо true
, либо false
логические значения).