Почему мой setTimeout убыстряется, когда у меня есть несколько вкладок, открытых для моего сайта?

И даже решениями для Шаблона разработки OO является конкретный язык. Шаблоны разработки являются решениями типичных проблем, которые Ваш язык программирования не решает для Вас. В Java Шаблон "одиночка" решает (упрощенную) проблему того. В Scala у Вас есть высокоуровневая конструкция под названием Объект в дополнение к Классу. Это лениво инстанцируют и существует только один. Вы не должны использовать Шаблон "одиночка" для получения Singleton. Это - часть языка.

6
задан chaos 24 July 2009 в 15:26
поделиться

1 ответ

Вся эта ситуация очень странная. На ум приходит только один сценарий, в котором браузер пытается «сгладить» период самовосстановления setTimeouts, как и для setInterval, и код, который делает это, фактически сбивает с толку таймеры в разных окнах с каждым из них. другое.

Я не знаю, возможно ли это, особенно с участием Facebook, но интересным тестом было бы присвоить каждому экземпляру случайное имя для функции countDown и посмотреть, имеет ли это какое-либо значение, например:

<?php $timerTag = rand(1, 1000); ?>
function countDown<?php echo $timerTag ?>() {
  ...
  setTimeout(function() { countDown<? php echo $timerTag ?>() }, 1000);    
}

countDown<?php echo $timerTag ?>();

Если это изменит наблюдаемое поведение, это говорит в пользу сценария, который я имею в виду. (И, возможно, предоставляет способ решения проблемы.)

5
ответ дан 17 December 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: