Aisamiery

Aisamiery
Рейтинг
324
Регистрация
12.04.2015

Nadejda, вы хоть пишите на трезвую что ли, а то совсем какой то бессознательный поток мыслей, который очень сложно воспринимать.

---------- Добавлено 02.03.2020 в 10:32 ----------

Перфекционист:
Картинки оптимизировать не столь сложно - webp вообще пока не нужен, как я понял.
Лучше поверните нить разговора в сторону оптимизации скриптов.
НА WP!

Вы поймите, чтобы понять что оптимизировать, надо понять что тормозит. Вот у меня есть блог на ВП (пока ещё на ВП), он у меня не тормозит, вот от слова совсем не тормозит, там установлено всего 3 плагина: акисмет, суперкэш и контакт форм и какая то тема с раздела тем официальная без изменений.... ну вот не тормозит и хоть ты тресни.

А в вашем случае непонятно что оптимизировать на бэкенде. Кривые плагины где в цикле идет 100500 запросов к БД? да не будет панацеи в виде какого то набора плагинов, который устраняет косяки вашего кривого набора плагинов и темы... точнее панацея только одна - пишите свой функционал сами, правильно, согласно канонам и не допускайте утечек памяти и лишних ненужных операций в коде. А если и оптимизировать, то конкретного "пациента", поставив профайлер и посмотрев где что и сколько выполняется, найти "узкое горлышко" и посмотреть что там можно поправить, скорее всего там будет какая то банальная фигня... и да в 90% случаев тормозит работа с БД, так как это первое во что упирается нагрузка как правило. А конкретно в данном случае (ТС просил) по pagespeed, а вот как раз это фронт и очень важно чтобы картинки были ровно тех размеров (исходник), который рендерится на странице, чтоб он был оптимизирован, ужат и приходил с заголовком кеширования, тогда и вырастут там попугаи.

Nadejda:
Увы, с головой у вас...кхм🍿 Вашу энергию, да в нужное русло.
Картинка отдается всегда одна и таже - максимального размера на всех страницах сайта. Постарайтесь понять почему.

Давайте головой лучше подумаете вы.

Вот специально для вас поднял пример:

Исходная картинка

http://49.12.2.183/img/39120040-example-grunge-retro-red-isolated-ribbon-stamp.jpg

Картинка в 200 px шириной

Картинка в 400 px шириной

Картинка в 300x100

Картинка в 100 px по высоте

Уменьшение качества на лету

Ну и конвертация в webp у кого появится тоже на лету

Там можете поиграться самостоятельно с окончанием урла и посмотреть что будет.

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

PS. Через пару дней снесу виртуалку, надеюсь вы успеете посмотреть пример

PPS. Кстати webp почти на 20% меньше весит чем его jpeg версия

Xubart:
Помогите как сделать так же, чтобы при нажатии (выбор параметра) URL менялся, основное содержимое, соответственно, тоже, но шаблон оставался как бы неподвижным? Создается эффект подгрузки контента по типу AJAX. Но как?

Подгружается по ajax, url меняется при помощи history api. Как вам помочь не совсем понятно, так как реальзаций может быть миллион и маленькая тележка.

Перфекционист:
Так здесь тема другая.
Ускорение сайта на ВП. Плагины всякие и всё такое.

Мой способ ускоряет любой сайт по пейджспиду, без плагинов и всяко такого :D

Для того чтобы делать качественные проекты надо иметь голову, а не список каких плагинов надо поставить. Никакие плагины сайтовладельцев никогда не спасут.. только голова и рациональное мышление и самое главное умение разобраться в причине.

Перфекционист:
Aisamiery, вы на ВП?

нет конечно, но в выше описанной схеме не задействован даже php, по этому использовать такие схемы можно независимо от движка.

Оксиген:

На фига "на лету" генерировать картинки? Это нерационально, дорого и антинаучно! Кто-нибудь внятно может ответить, зачем одну и ту же работу выполнять более 1 раза? Никто на этот вопрос тут не ответит, все "знатоки" проигнорируют.

Очень интересно как вы генерируете, по крону что ли? Обычно это происходит так:

Пользователь запрашивает index.php, там есть какой нибудь getImage('imaghe.jpg', 200, 200), если картинки нет размером 200х200 то она генерируется "на лету" блокируя поток php, увеличивая время ожидания ответа сервера. Далее уже идет запрос без генерации так как она уже есть. Либо при загрузке картинки в систему, система генерирует несколько форматов, например 5.

Как у нас, запросы разруливает сам nginx, то есть юзер запрашивает реально картинку статики, nginx видит что картинки нет, у него в кешэ её нет (то есть еще не генерировалось), отправляет запрос на отдельную виртуалку, которая делает картинку нужного размера и nginx сохраняет её в кеше, далее идет работа с кешем. Когда товар уходит с продажи, картинку перестают запрашивать, nginx сам удаляет все её варианты с кэша.

Почему у нас генерируется на лету и размеры можно задать в урле, сделано это для того, что помимо разных вариантов разрешений на сайте, мы используем картинки на всевозможных планшетах и мобильных девайсов и каждый девайс может запросить нужный ему размер не напрягая сервер (а у нас больше 30к юзеров и под 300rps).

Ну и как минимум это удобно, верстка выглядит естественно и фронт делать просто, например адаптивные картинки можно прописывать просто так как нужно


<img srcset="elva-fairy.jpg@280 320w,
elva-fairy.jpg@440 480w,
elva-fairy.jpg@800 800w"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="elva-fairy.jpg@800" alt="Elva dressed as a fairy">

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

Ради интереса, вот при наших нагрузках, нагрузка на эту виртуалку которая клепает собственно нужные нам размеры "на лету"

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

делайте своевременно бэкапы в автоматическом режиме и научитесь их разворачивать за небольшое время и можете пользоваться хоть арендуя компы у соседей.

LEOnidUKG:
На лету? Вы работали с сайтами, у которых посещалка больше 100 "калек" в сутки? :)
Это вообще не вариант.

У нас больше 30к сутки, превью генерятся на лету (по параметрам в урле) сишными либами, хранятся в кеше nginx, ничего сверхъестественного не наблюдаем. Кэш ограничен, самое не используемое вытесняется само. А да, сами превью генерит отдельная достаточно слабая виртуалка, на неё nginx проксирует запрос если картинке в кэше нет. Максимум что может - это лечь виртуалка и пропадут превью которых в кэше нет, но за 2 с лишним года виртуалка ни разу не легла.

Да, сейчас сильно развиваются SSR решения, тот же next.js и nuxt.js.

Если исключить (а рано или поздно поисковики наконец их исключат) кучу ГС с килотоннами рерайта сделанными не для людей а для РСЯ и адвордс, то для всех остальных сайтов технология достаточно хорошая.

Читсый бэк и фронт - разработчики сосредоточены на архитектуре, достаточно просто внедрять микросервисы. Не нужно искать того невиданного специалиста, который умеет профессионально в бэк и фронт. Соответственно задачи реально можно разбить и найти сильного бэк, который делает апи и чистый фронт - который делает клиента. Плюс можно найти любого фронта, например iOS и сделать на том же бэке клиента под iOS. Так же тут достаточно сложно наговнокодить, то есть не будет той страницы где в темплейте в цикле юзается SQL запросы к бд.

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

На самом деле большинство технологий приносит пользу, раньше мало юзали SPA из за проблем с поисковиками, было сложно внедрять версию для поисковых систем. С развитием SSR (рендер на сервере) все сильно изменилось.

А так, во фронте сейчас уже начинает набирать популярность такие штуки как svelte

Stek:
Ок, я понял вашу логику. Если у медленного пинга 70% времени затрачено на доставку по локальному каналу, а 30% по внешнему - то в медлительности виноват внешний канал.

Что такое медленный пинг и при чем тут канал вообще? Пинг на одном и том же оборудование будет по сути одинаковым пи 1мб/с или 1Гб/с, ширина канала на это никак не влияет, грубо говоря влияет оборудование и кол-во промежуточных точек, чем их меньше тем пинг ниже (ну и плюс используемая технология, оборудование и расстояние).

Всего: 4113