После игры с кодом некоторые, я нашел проблему.
Вы слишком сильно вызываете disp.innerHTML
. Сборщик мусора не может не отставать от количества раз, когда он обновляет дом.
Итак, если мы возьмем этот раздел кода и переместим его из цикла обновления и в его собственный setInterval(..., 500)
, игра будет играть, и dom может не отставать.
это:
if (Object.keys(enemylist).length == 0) {
disp.innerHTML = "Game Over";
} else if (Object.keys(enemylist).length != 0) {
disp.innerHTML = "Start";
}
Станьте следующим:
setInterval(() = > {
if (Object.keys(enemylist).length == 0) {
disp.innerHTML = "Game Over";
} else if (Object.keys(enemylist).length != 0) {
disp.innerHTML = "Start";
}
}, 500)
При запуске теста производительности в инструментах chrome dev я увидел, что было более 800 узлов, но при просмотре элементов на странице было всего несколько элементов. Однако элемент p
обновлялся много. Поэтому мы просто замедляем скорость обновления, и мы исправляем проблему, и теперь мы держим ниже 100 узлов!
Насколько мне известно, на данный момент DateTime
поддерживает только format
.
Так как вы хотите только отобразить, вы можете попробовать Text
field & amp; показать гуманистическую ценность.
Text::make('Activiy', 'last_active')
->displayUsing(function($lastActive) {
return $lastActive->diffForHumans();
})
->exceptOnForms(),