Discourse — это одностраничное JavaScript-приложение.
Это означает, что навигация внутри приложения происходит молниеносно. Компромисс современных веб-приложений заключается в том, что они должны быть загружены и проанализированы при первоначальном просмотре страницы. Хотя мы на протяжении многих лет активно работаем над оптимизацией доставки ресурсов сайта, в зависимости от условий устройства или сети это иногда может занимать немного больше времени.
В последние несколько недель мы активно работали и тестировали возможные улучшения для сокращения времени ожидания, с которым сталкиваются пользователи на медленных соединениях или устройствах. Мы рады сообщить, что начиная с этого коммита, сайты Discourse теперь будут отображать экран заставки во время загрузки ресурсов сайта.
Как это выглядит?
Мы уже какое-то время использовали эту функцию на Meta, так что вы, возможно, уже видели её. Если нет, вот как она выглядит.
Как это работает?
Если пользователь заходит на ваш сайт Discourse, и приложение не будет проанализировано в течение следующих двух секунд, мы покажем экран заставки. Таким образом, это зависит от времени соединения плюс 2 секунды.
Мы не отображаем экран заставки для пользователей с быстрыми устройствами или соединениями.
Как мне получить это?
Это функция в ядре, и настройка включена по умолчанию, поэтому всё, что вам нужно сделать, это обновиться до последней версии. Если, по какой-то случайности, вы экспериментировали с добавленной нами настройкой и не видите её, убедитесь, что у вас включена настройка сайта splash_screen.
В чём преимущества?
Помимо показа чего-либо пользователям на медленных устройствах или соединениях, эта функция также сокращает задержки FCP/LCP на сайтах Discourse. Мы создали внутренние инструменты для отслеживания FCP/LCP на Meta, и вот как выглядят результаты.
Есть ли ещё что-то, что мне нужно знать?
Текст «Загрузка», отображаемый на экране заставки, основан на строке перевода preloader_text. Наше сообщество было замечательным, и этот текст уже переведён на многие языки. Если вы предпочитаете другой текст, вы можете настроить эту строку по адресу /admin/customize/site_texts?q=preloader_text на вашем сайте.
Экран заставки никоим образом не замедляет работу вашего сайта и отображается только во время загрузки ресурсов сайта. Как только сайт готов, экран заставки немедленно удаляется. Между моментом готовности сайта и удалением заставки нет задержки.


