1. 폰트 로딩 최적화@import 사용 피하기
@import는 폰트를 불러오는데 브라우저 로딩을 잠시 멈춰 세운다. 폰트를 로딩하고 나서야 그다음 css을 로딩하기 때문이다. @font-face 사용따라서, link혹은 @font-face를 통한 웹폰트 로딩을 사용하도록 하자. link태그의 href링크로 가보면 안에 @font-face로 코딩되어있는 페이지를 볼수있다. 즉 그게 그거이다.
Web Font Loader 라이브러리
@import와 비슷하지만 비동기로 실행된다. 속도측면에서는 위의 link/@font-face 보다는 느리지만 폰트가 바뀔때 깜빡이는 현상등을 잡을 수 있는 이점이 있다. 공식 문서 : GitHub - typekit/webfontloader: Web Font Loader gives you added control when using linked fonts via @font-face. Web Font Loader gives you added control when using linked fonts via @font-face. - GitHub - typekit/webfontloader: Web Font Loader gives you added control when using linked fonts via @font-face. github.com 비동기 link 로딩media 방법
"Print" 미디어 타입이란, 사용자가 페이지를 프린트를 하려고 하는 경우에만 브라우저가 해당 스타일 시트를 불러오는 것으로 렌더링에는 영향을 미치지 않는다. 그리고 여기에 onload 이벤트로 this.media='all'를 추가한다면, 스타일 시트가 로드가 완료되면 미디어 속성을 다시 all로 바꾸면서 스타일 시트가 적용된다. 즉 기존에는 블록킹 방식으로 불러와서, dom로드가 멈추었다면, preload 방법
preload는 웹브라우저가 미리 로딩을 시작한다. IE에서는 지원하지 않으며 필수로 사용할 폰트등 일부 파일만 preload를 시켜놓으면 속도향상이 있다. 웹브라우저가 페이지를 읽어오면서 아직 로딩이 안되었더라도 동시에 로딩하는 h특성을 이용하여, html 로딩중에 link태그가 보이면 로딩부터 해놓고 (나중에 어짜피 쓸것 이라고 개발자가 지정했으니) 나중에 끼워 맞춰주는 방식이다. <link> 태그 규칙 rel="preload" // 고정 너무 남발시 초반 로딩속도가 길어지는 부작용이 생길수 있다. 3. 이미지 로딩 최적화 (레이지 로드)웹에서 가장 큰 비중을 차지하는 데이터는 이미지다. 심지어 경우에 따라선 압축기술이 발전된 동영상보다도 더 많은 용량을 차지하는 게 이미지 다. 그래서 웹개발자들은 LazyLoad라는 깔끔한 기법을 만들었다. 보이는 곳에 있는 이미지만 로딩하고, 나머지 이미지는 나중에 로딩하자. 아래의 움짤을 보면, 스크롤을 내리자 개발자탭에 새로 로딩되는 이미지가 주르륵 뜨는 것을 볼 수 있다. 즉, 사용자가 안보는 곳(안보이는곳)엔 이미지 로드를 지연시켜놓고, 사용자가 스크롤을 내리면 그때서야 이미지를 로딩시켜 보다 초기 로딩을 향상시키는 기법이다. 티스토리 lazyload 적용방법 (2022-03-18 스크립트 추가 업데이트)티스토리 스킨편집 html에서 다음 코드를 복붙 하면 된다. 원리는 매우 간단하다.
4. 자바스크립트 로딩 최적화스크립트는 로딩시 html로딩을 일시중지 시킨다. 이를 비동기 적으로 실행할수 있는 두가지 방법이 있다. (defer / async)
defer와 async의 자세한 동작을 알고싶다면 다음 글을 참고해보자 [JS] 📚 defer, async 스크립트 모던 웹브라우저에서 돌아가는 스크립트들은 대부분 HTML보다 ‘무겁습니다’. 용량이 커서 다운로드받는 데 오랜 시간이 걸리고 처리하는 것 역시 마찬가지이죠. 브라우저는 HTML을 읽다가 태그 inpa.tistory.com 5. DNS 미리 연결먼저 DNS값을 가져오는 과정으로 페이지내 로딩하는 외부 리소스가 있다면 적용해 볼 수 있다. 미리 DNS를 가져와서 타 서버 초기로딩시간을 줄여주는 원리이다.
이 기능으로 성능차이는 매우 적으므로(0~200ms : 0.2초 이하) 큰 기대는 할 필요없이 마지막으로 최적화를 마무리할 때 할만한 작업이라고 보면 된다. 해외 DNS서비스에 기반을 두어 DNS응답속도가 느렸다면 차이가 클 수 있다. Reference https://yceffort.kr/2021/03/improve-css-performance https://mjae404.github.io/2021/12/16/css-optimization/ 이 글이 좋으셨다면 구독 & 좋아요 여러분의 구독과 좋아요는 |