В случае, когда требуется длительная операция, в нескольких секунд, до десятков, следует предупреждать посетителя в виде анимированной пиктограммы загрузки данных, или фразы. Например, при подборе данных подбор данных по набору параметров, можно выводить фразу «обработка данных, подождите несколько секунд».
Если же требуется больше времени, несколько минут, то посетителя стоит предупреждать заранее, что данное действие займет столько-то времени. И при запуске процесса, желательно выводить строку состояния, показывающую процент выполнения (progress bar).
Причины медленной работы сайта?
- Серверная часть – изначально, html код страницы сайта генерируется cms (движок, админка), которая расположена на сервере. Следующие факторы влияют на скорость:
- Оптимальность cms – если админка изначально сделана для блога, например, Wordpress, а на ней развернут интернет-магазин, со сложными фильтрами, то это приведет к долгим обработкам
- Набор данных – некоторые админки не готовы к большим порядкам данных, например нескольким миллионам товаров, с десятками тысяч характеристик
- Мощность сервера – набор данных и трафик должен соответствовать ресурсам сервера. Это видно по загруске процессора и оперативной памяти
- Большая нагрузка – при большом потоке посетителей, требуется распределять серверные ресурсы, хранения статичной информации (подключение cdn)
- Большой объем контента – выдавай большой объем html страницы, браузер может начать медленно работать. В таких случаях нужно продумывать частичную или по этапную выдачу контента. Перестраивать логику подачи контента, руководствуясь принципом «по необходимости»
- Оптимальность страницы сайта – после загрузки html кода в браузер, на странице начинает работать javascript, добавляя анимацию и обработку различных действий пользователя. Если этих событий много, или они сделаны не оптимально, то сайт начинает зависать
Что нужно сделать?
- Провести диагностику, выявить узкие места
- Составить и согласовать ТЗ
- Провести оптимизацию тестовом сервере
- Перенести на продуктив