Will-change потребляет слишком много памяти

На днях на одном из сайтов, столкнулся с интересной ошибкой, которая выводится в консоли браузера Firefox:

Will-change потребляет слишком много памяти. Лимитом бюджета является площадь поверхности документа умноженная на 3 (510230 пикселей). Вхождения will-change, превышающие бюджет, будут проигнорированы

Проведя небольшое расследование, понял что проблема кроется в коде галереи WordPress, которая выводит картинки на страницы в слишком хорошем качестве (читай в оригинальном). И когда картинок становится на странице больше чем несколько, соответственно и происходит данная оказия. Исправил, покопавшись в исходном коде. А именно заменил функцию wp_get_attachment_metadata(), которая выдает url оригинального файла, на wp_get_attachment_image_src, которая может выдавать URL уже нужного размера. При использовании стандартной медиабиблиотеки в wordpress, она при загрузке автоматически режет файл на наиболее востребованные размеры.

Will-change потребляет слишком много памяти

Другие статьи по wordpress

Картинка из base64

Довольно типичная задача — нужда чтобы изображение полученное в виде данных при помощи например запроса ajax (картинка из base64), отобразилась на веб странице. Решение простое, и даже не требует никаких перекодировок, так как, движёк браузера уже позволяет отображать такие картинки, достаточно указать ему формат данных источника. Например так:

Картинка из base64

Ну а если задачу рассматривать в комплексном виде (картинка из base64), то готовый код с запросом данных для отображения картинки может выглядеть так:

Кнопка выбора периода

Довольно редко использую, потому забываю постоянно, вот сделал себе очередную шпаргалку, как делается кнопка выбора периода в 1с на управляемых формах. Итак, первым делом создайте реквизит формы, с типом «стандартный период»:

кнопка выбора периода

Далее, перетаскиваем этот реквизит на форму, и добавляю обычные реквизиты с типом Дата+Время:

Осталось всего ничего — добавить обработчик события «при изменении»:

На этом задача «кнопка выбора периода» будем считать завершена. Еще больше всяких шпаргалок по 1С, легко найдется здесь.

Затененный задний фон для модального окна

Довольно часто встречающаяся задача: затененный задний фон модального окна или элемента веб страницы.Решается задача довольно просто, с использованием псевдоэлементов :before и :after. Обращаю внимание, что их можно использовать только в парных тегах вида <div></div>, и соответственно нельзя в тегах вида input (т.е. не парных). Еще одним нюансом является то, что значение свойства display может быть только: block, inline, none, list-item. Все остальные значения будут трактоваться как block.

Например задача получить страницу вида:

задний фон для модального окна

Решается примерно так: сначала определим стили CSS:

HTML для этих стилей может выглядеть таким:

В нужный момент достаточно показать блок application, и получим картинку как на скриншоте выше,а именно затененный задний фон модального окна:

А здесь можно посмотреть еще много советов по работе с CSS

Бинарные логи mysql

С недавних пор обнаружил, что на моёй виртуальной машине, где размещается сайт, как-то подозрительно быстро заканчивается место на жестком диске. Проведя небольшое расследование, обнаружил, что главный виновник — бинарные логи mysql. Странно конечно, потому что в конфигурационных файлах mysql настройка log-bin отключена:

Бинарные логи

И вестись они в принципе не должны. Вообще, бинарные логи обычно нужны только в том случае если:

  • настроена репликация с другим сервером
  • необходимо иметь возможность восстановить поврежденную базу данных (вдруг бекапы не делаете)

В остальных случаях она не нужна. Хм.. ну уже если отключить не удаётся, по неизвестной причине, то можно ограничить накопление логов ключами:

  • expire_logs_days=3 — ограничить глубину логов 3 днями
  • max_binlog_size =100M — ограничить размер файла логов 100 мегабайтами

Чуть погуглив, обнаружил, что в свежих версиях mysql логи отключаются теперь другим ключем: disable-log-bin

Однако.. что делать с файлами логов, если они не были отключены и накопились? Удалять их руками черевато возникновением ошибок. Поэтому лучше войти в консоль mysql и выполнить следующую команду:

Ну и на всякий случай, удалить логи старше Х дней можно вот так:

Могу порекомендовать еще посмотреть мою старую шпаргалку по MySQL и другие лайфхаки

1 2 3 4 282