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

Salesforce предоставляет ряд вариантов дизайна для создания уровня пользовательского интерфейса вашего сообщества или сайта портала - фреймворк Lightning, visualforce или API / SDK (и используйте собственный пользовательский интерфейс). Для наших целей мы сосредоточимся на обоих самых современных из них - фреймворке Lightning. (Trailhead.salesforce.com - отличное место, чтобы узнать больше о Lightning, если вы с ним не знакомы).

Компоненты Lightning - это среда пользовательского интерфейса для разработки веб-приложений для любого устройства (мобильного или настольного компьютера или чего-либо еще). Он использует JavaScript на стороне клиента и Apex на стороне сервера. Созданные таким образом приложения попадают в категорию, известную как одностраничные веб-приложения. Одностраничное приложение (SPA) - это веб-приложение или веб-сайт, которые взаимодействуют с пользователем, динамически перезаписывая текущую страницу, а не загружая целые новые страницы с сервера. Этот подход является способом создания большинства современных веб-приложений и имеет множество преимуществ, но он также вводит некоторые дополнительные соображения в отношении стратегий, которые гарантируют, что при создании собственного портала вы учитываете любые потенциальные воздействия на производительность.

Основным среди этих соображений является то, что помимо загрузки содержимого страницы (текст, изображения, стили) конечным пользователям также потребуется загрузить фреймворки javascript, скомпилировать и выполнить эти фреймворки.

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

Мой общий совет:

  • Внимательно изучите контент и ресурсы на своей первой (домашней) странице.
  • Используйте CDN, предоставляемый salesforce
  • Используйте инструменты, которые использует любой веб-разработчик, например инструменты разработчика Chrome, чтобы понять, что происходит.
  • Используйте плагин для Chrome Оптимизатора сообщества Salesforce для получения дополнительных сведений
  • Ознакомьтесь с приведенными ниже рекомендациями для разработчиков по Lightning Framework.

Номер 1: используйте кеширование контента !!

Воспользуйтесь преимуществами CDN

Https://help.salesforce.com/articleView?id=community_builder_cdn.htm

Https://www.wikiwand.com/en/Content_delivery_network

Отключить режим отладки Lightning

Если он включен, отключите «режим отладки молнии», так как это остановит минификацию JS-кода.

Https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/aura_debug_mode.htm

Прогрессивный рендеринг

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

Https://releasenotes.docs.salesforce.com/en-us/summer18/release-notes/rn_networks_progressive_rendering.htm

Включите постоянное кеширование браузера

Https://help.salesforce.com/articleView?id=community_builder_cache.htm&type=5

Инструменты

Вкладка "Сеть" в инструментах разработчика Chrome

Https://developers.google.com/web/tools/chrome-devtools/network-performance/

Инспектор освещения Salesforce

Https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/inspector_intro.htm

Оптимизатор страницы сообщества

Https://developer.salesforce.com/blogs/developer-relations/2016/02/introduction-salesforce-lightning-inspector.html

Навигация по сообществу

Ссылки на другие страницы сообщества

Если вы создаете собственное меню (например, в рамках настраиваемой темы), не используйте ссылки href для ссылки на другие страницы сообщества. Сообщества представляют собой одностраничные приложения (SPA), и если вы используете обычные HTML-ссылки, вы будете выполнять всю начальную загрузку, которую выполняет Lightning при каждом нажатии ссылки. Вместо этого используйте событие молнии navigateToUrl (..) с относительной ссылкой на страницу.

Https://www.wikiwand.com/en/Single-page_application

Https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/ref_force_navigateToURL.htm

Разработка

При необходимости используйте сохраняемые действия

Https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/controllers_server_storable_actions.htm

Https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/controllers_server_storable_lifecycle.htm

Рассмотрите возможность использования несвязанных выражений (односторонняя привязка)

…. когда вам не нужны связанные выражения (двунаправленная привязка), что увеличивает производительность.

Https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/expr_data_binding.htm

Учитывайте размеры изображений для содержания в вашем сообществе

Звучит очевидно, но иногда нам лень оптимизировать размер изображений, видео и другого многофункционального контента на наших веб-сайтах. Ознакомьтесь с этим руководством: https://images.guide/

Предлагаемые видео

Некоторые важные советы в этих видео:

Развитие эффективных молниеносных сообществ для масштабов B2B и B2C https://www.salesforce.com/video/1771214/

Рекомендации по производительности для разработки компонентов освещения https://developer.salesforce.com/events/webinars/ComponentPerformance