В общем, освежающий напиток не очень хороший способ делать вещи. Вы рассматривали возможность использования асинхронных вызовов и обновления DOM с помощью JavaScript вместо перезагрузки всей страницы?
Однако, если вы хотите продолжить этот маршрут, я бы взял текущее время начала в качестве базы, и проверка отсюда на 1 секунду уже прошла.
const t0 = performance.now();
function refresh(){
if ((performance.now() - t0) >= 1000) {
location.reload();
}
}
Однако вам нужно вызвать обновление, пока это не произойдет.
Что касается комментария "не понимаю", я убираю немного и добавлю кое-какое объяснение:
Первая строка находится за пределами всех функций, поэтому она задает переменную «глобально», поскольку она никогда не меняется, я использую косантант (вместо переменной) для скорости и читаемости. Устанавливает текущее время в мс insode t0
const t0 = performance.now();
В вашей функции я использую ту же команду, чтобы снова получить мс, и вычесть из нее ранее сохраненную мс. Если новый номер более чем на 1000 больше исходного, прошла секунда, и он может выполнить перезагрузку.
if ((performance.now() - t0) >= 1000) {...