~ / blog

Блог — страница 15

Пишу о том, что делаю каждый день: скорость сайтов, кэш, обмен с 1С, серверы и WordPress без лишнего.

#Кэширование 1 мин

Пустой ответ — это результат, а не ошибка

Правило «пустое не кэшируем» плюс сторож полноты — замкнутый круг: 2092 из 3118 ячеек залипли в очереди. Пустая вторая страница и товар без допов — законный результат. Признак сбоя — исключение, а не пустота.

· · ·
#Кэширование 2 мин

Два полных сброса кэша одновременно: атомарный замок через INSERT IGNORE

Выкат одновременно замечают живой запрос и крон — два сброса рвут каталог друг у друга. add_option проверяет и пишет в два шага и не спасает. INSERT IGNORE, протухание замка через 5 минут, try/finally и сигнал только от владельца.

· · ·
#PageSpeed 3 мин

Страница не прыгает при подмене шрифта: запасной шрифт с метриками настоящего

Системный шрифт уже веб-шрифта: «Прицеп» 349 px против 417, и при подмене страница вырастала на 142 px — на iPhone это видно как «ползущий» экран. size-adjust и ascent-override, главная грабля (+94 px) и как проверить.

· · ·
#Кэширование 2 мин

Полный сброс кэша обрывается на исчезнувшей папке, и прогрев не стартует

nginx удаляет подкаталоги кэша, пока мы их обходим: исключение, return в catch — и сигнал прогрева не отправлен. 634 из 640 страниц MISS через 6 минут после выката. CATCH_GET_CHILD, catch без return и как воспроизвести.

· · ·
#Кэширование 2 мин

Изоляция рендера: воркер в одном процессе травит кэш

Переменная запроса из шаблона товара доживала до конца прогона воркера: 134 из 139 ячеек без вкладок, все HIT, сторож доволен. Снимок и восстановление состояния, маркеры по группам и вторая беда — Cannot redeclare по кругу.

· · ·
#PageSpeed 3 мин

Прелоад шрифтов: живое время говорит одно, оценка — другое

Без прелоадов страница вживую рисовалась быстрее (1668 против 2056 мс), а оценка падала с 95–97 до 92–93. Почему так, как модель считает цепочку обнаружения шрифта и когда прелоада, наоборот, не хватало: 95 → 99.

· · ·
#Кэширование 1 мин

Выкат везёт манифест раньше PHP: сброс выполняет старый код

Манифест сборки приехал на 27 секунд раньше исправленного PHP — детектор выката запустил сброс старым кодом. Правку в пути сброса нельзя проверить тем же выкатом: проверять следующим или вызовом сигнала руками (0,03–0,07 с).

· · ·
#Кэширование 2 мин

Фоновый рендер наследует не то окружение

Воркер в командной строке без HTTPS собирает http-ссылки — карточки без картинок на https-сайте. Та же ошибка в генераторе миниатюр: 47 постеров по http. Чек-лист окружения и почему проверочный скрипт видел 167 промахов из 167.

· · ·
#PageSpeed 3 мин

Какие символы нужны шрифту — спросите базу, а не три страницы

Набор символов для сабсета шрифта — из всего контента сайта: 204 символа, среди них ⌀ ≈ − ● ₽ №. Скрипт для WordPress, проверка «ни одной потери» и сюрприз: в полужирном Open Sans нет знака рубля.

· · ·

$ tail -f /blog

Не пропустите новые статьи

Пишу разборы по скорости сайтов, кэшу и разработке — на живых проектах и с цифрами. Подпишитесь, и ссылка на новую статью придёт сразу после выхода. Без рекламы и спама, отписаться — в один клик.

В Telegramодна кнопка «Старт» в боте

или на почту

связаться

Расскажите о задаче