Какие есть варианты для реализации счётчика на сайте, значение которого обновляется для всех одинаково?
К примеру:
Каждую минуту, значение счётчика увеличивается на единицу. То есть, изначально число 100 и к нему каждую минуту прибавляется единица. Было 100, стало 101, 102 и так далее.
let dateStart = new Date("2021-05-11 14:00:00").getTime();//Время начала
let numberStart = 100;//Число начала
let numberNow = Math.floor(numberStart + (Date.now()-dateStart)/1000/60);//Текущее значение числа
Оно будет одинаково для всех у кого время на компьютере идет правильно.
А чтобы оно было не зависимо от времени на компе пользователя, делайте этот просчет на сервере, аяксом берите значения при загрузке страницы и там уже по таймауту прибавляйте +1
twobomb, В вопросе если не ошибаюсь, написано - "значение которого обновляется для всех одинаково". То есть этот счётчик должен идти на самом сервере, значение счётчика обновляется в БД и уже из БД берётся значение и вставляется на сайт (innerHTML).
Разве то, что вы написали - это не локальный счётчик или я ошибаюсь?
Максим Иванов, ошибаетесь, конечно. Ваша задача не чтобы что там шло, обновлялось, базы данных и т.д. Ваша задача просто синхронизировать значение у всех пользователей, а дальше уже у каждого будет локальный таймер и одна секунда длится одинаково, что в африке что в америке. Если вам не нужно в риалтайме менять это значение и чтобы у всех оно менялось, то синхронизация происходит один раз, например при входе на страницу и дальше уже считается у каждого пользователя отдельно.
А какое значение будет выдавать сервер я уже выше дал пример, не знаю что у вас там на сервере, может нужно на пхп переписать или еще что-то.
Строго говоря одинаково быть не может, так как есть пинг, задержки сервера, тормоза клиента/провайдера и много еще чего, включая теорию относительности.
А так - сетИнтервал для одинаковых значений вполне достаточно, хотя из вопроса не совсем ясно что вы пытаетесь сделать...
Разве не выведется локальное значение? То есть если я зайду на сайт я, просижу там 5 минут, то у меня будет значение 105. Потом заходите вы и у вас значение 100 (начинается с начала). Разве не так?