Laravel nova diffForHumans DateTime

После игры с кодом некоторые, я нашел проблему.

Проблема

Вы слишком сильно вызываете 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 узлов!

1
задан Dronaxer 19 January 2019 в 08:30
поделиться

1 ответ

Насколько мне известно, на данный момент DateTime поддерживает только format.

Так как вы хотите только отобразить, вы можете попробовать Text field & amp; показать гуманистическую ценность.

Text::make('Activiy', 'last_active')
    ->displayUsing(function($lastActive) {
        return $lastActive->diffForHumans();
    })
    ->exceptOnForms(),
0
ответ дан Saumini Navaratnam 19 January 2019 в 08:30
поделиться
Другие вопросы по тегам:

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