Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 07.04.2021, 20:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от jurvrn
Но почему ? Ведь секунды не выводятся.
видимо вы невнимательно читали пост про эти часы, часы и так отстают(ждут ответ с сервера), а если убрать и секунды то отставать будут ещё больше, секунды не выводятся, но участвуют в начале старта.

Сообщение от jurvrn
Мне кажется что этот скрипт нагружает компьютер своей анимацией.
можно слегка оптимизировать
заменив
a.innerHTML = e[b]

на
if(a.innerHTML != e[b]) a.innerHTML = e[b]
Ответить с цитированием
  #22 (permalink)  
Старый 07.04.2021, 23:24
Аспирант
Отправить личное сообщение для jurvrn Посмотреть профиль Найти все сообщения от jurvrn
 
Регистрация: 04.04.2021
Сообщений: 52

рони,
разобрался - с учетом того что это шорткод окончание кода будет таким
var span = document.querySelector(".time");
TIMELITE
." fn(span, '". (date("G")+3).":".date("i") .":".date("s") ."');
        </script>
";


а это на что повлияло?
if(a.innerHTML != e[b]) a.innerHTML = e[b]
Ответить с цитированием
  #23 (permalink)  
Старый 07.04.2021, 23:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от jurvrn
а это на что повлияло?
вместо перезаписи 3 элементов 60 раз в секунду, в лучшем(98% условно) случае будет перезаписыватся 1 элемент в 1 секунду, в "худшем"(2%) 3 элемента 1 секунду
Ответить с цитированием
  #24 (permalink)  
Старый 08.04.2021, 12:18
Аспирант
Отправить личное сообщение для jurvrn Посмотреть профиль Найти все сообщения от jurvrn
 
Регистрация: 04.04.2021
Сообщений: 52

рони,
а здесь у вас вообще не было анимации для перезаписи?
function moscowTime() {
	var d = new Date();
	d.setHours( d.getHours() + 3, d.getMinutes() + d.getTimezoneOffset()  );
    var reg = d.getSeconds()%2;
    var time = d.toTimeString().substring(0,5)
    reg && (time = time.replace(':',' '))
    return time;
}

onload = function () {

  setInterval(function () {
    document.getElementById("txt").innerHTML = moscowTime();
  }, 100);
}
Ответить с цитированием
  #25 (permalink)  
Старый 08.04.2021, 12:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от jurvrn
а здесь у вас вообще не было анимации для перезаписи?
не понимаю что такое анимация в ваших вопросах , но перезапись(вывод значения часов) 10 раз в секунду, строка 14, 100 можно увеличить до 1000 и тогда вывод будет раз в секунду.
Ответить с цитированием
  #26 (permalink)  
Старый 08.04.2021, 17:58
Аспирант
Отправить личное сообщение для jurvrn Посмотреть профиль Найти все сообщения от jurvrn
 
Регистрация: 04.04.2021
Сообщений: 52

рони, просто в первом случае у вас был setInterval, а во втором requestAnimationFrame.
Ответить с цитированием
  #27 (permalink)  
Старый 08.04.2021, 18:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

jurvrn,
requestAnimationFrame оба метода имеют плюсы и минусы.
Ответить с цитированием
  #28 (permalink)  
Старый 10.04.2021, 10:47
Аспирант
Отправить личное сообщение для jurvrn Посмотреть профиль Найти все сообщения от jurvrn
 
Регистрация: 04.04.2021
Сообщений: 52

рони,
Мне больше важно меньше нагрузка на сайт, на браузер. И точность, чтобы не было зависаний. Какой тогда лучше?

Последний раз редактировалось jurvrn, 10.04.2021 в 10:49.
Ответить с цитированием
  #29 (permalink)  
Старый 10.04.2021, 11:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

jurvrn,
setInterval может затормозить на неактивной вкладке, а потом "выстрелить" очередью без промежутков, всё зависит от мощности компа и браузера, может пройти незаметно.
на данном этапе можно считать оба метода одинаковы, но если есть возможность отказаться от setInterval, то лучше его не использовать, от слова совсем.
Ответить с цитированием
  #30 (permalink)  
Старый 10.04.2021, 11:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

jurvrn,
почитайте внимательно всю статью и выводы внизу settimeout-setinterval
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часы на сайт с учетом часового пояса bridun Общие вопросы Javascript 2 13.01.2019 17:22