Discourse는 단일 페이지 JavaScript 애플리케이션입니다.
이것은 앱 내 탐색이 매우 빠르다는 것을 의미합니다. 현대 웹 애플리케이션의 단점은 초기 페이지 로드 시 모든 것이 로드되고 파싱되어야 한다는 점입니다. 수년에 걸쳐 사이트 자산 서빙 방식을 최적화하기 위해 많은 노력을 기울였지만, 장치 및 네트워크 상태에 따라 이 과정이 다소 느릴 수 있습니다.
지난 몇 주간, 느린 연결/장치를 사용하는 사용자가 경험하는 초기 대기 시간을 줄이기 위한 잠재적 개선 사항을 적극적으로 작업하고 테스트해 왔습니다. 이 커밋부터 Discourse 사이트에서 사이트 자산이 로드되는 동안 스플래시 스크린을 표시하게 된 것을 기쁘게 알려드립니다.
어떤 모습인가요?
Meta에서는 이미 일찍부터 이 기능을 활성화해 왔으므로, 이미 본 적이 있을 수 있습니다. 그렇지 않다면, 다음과 같은 모습입니다.
어떻게 작동하나요?
사용자가 Discourse 사이트를 로드할 때, 2초 이내에 Discourse가 파싱되지 않으면 스플래시 스크린을 표시합니다. 즉, 연결 시간 + 2초를 기준으로 합니다.
빠른 장치/연결을 사용하는 사용자에게는 스플래시 스크린을 표시하지 않습니다.
어떻게 활성화하나요?
이것은 코어 기능이며, 설정이 기본적으로 활성화되어 있으므로 최신 버전으로 업데이트하기만 하면 됩니다. 만약 우연히 우리가 추가한 설정을 실험해 보았고 스플래시 스크린을 볼 수 없다면, splash_screen 사이트 설정이 활성화되어 있는지 확인하십시오.
어떤 이점이 있나요?
느린 장치/연결을 사용하는 사용자에게 무언가를 표시하는 것 외에도, 이 기능은 Discourse 사이트의 FCP/LCP 지연을 줄여줍니다. Meta에서 FCP/LCP를 추적하기 위해 내부 도구를 구축했으며, 결과는 다음과 같습니다.
알아두어야 할 다른 것이 있나요?
스플래시 스크린에 표시되는 “로딩 중” 텍스트는 preloader_text 번역 문자열을 기반으로 합니다. 우리의 커뮤니티는 훌륭하며, 해당 텍스트는 이미 많은 언어로 번역되어 있습니다. 다른 문구를 선호한다면, 사이트의 /admin/customize/site_texts?q=preloader_text에서 해당 문자열을 사용자 지정할 수 있습니다.
스플래시 스크린은 사이트를 어떤 식으로든 지연시키지 않으며, 사이트 자산이 로드되는 동안에만 표시됩니다. 사이트가 준비되면 스플래시 스크린은 즉시 제거됩니다. 사이트가 준비된 시점과 스플래시 스크린이 제거되는 시점 사이에 지연은 없습니다.


