Supercharged CommitLog WordPress: Loading CSS

[음악 재생] [작은 폭발] SURMA : 그래서 마지막으로 우리는 우리의 인덱스 PHP를 작성했습니다 그리고 우리의 블로그 게시물 목록을 렌더링하는 유일한 PHP 우리의 개인 블로그 게시물

다음 단계는 내가 염두에 두었던 디자인을 구현하는 것이다 나는 그것에 대해 너무 많이 이야기하지 않을 것이다 저장소에 가셔도 좋습니다 CSS 파일을 살펴보십시오 여기에 놀라움이 있어서는 안됩니다

그것은 단지 CSS입니다 대부분 Flexbox 및 일부 색상입니다 하지만 내가하고 싶은 말은 우리 휴대폰을 3G 네트워크에 연결하면 어떻게 될까요? 로드가 어떻게 수행되고 있는지 확인하십시오 3G 네트워크는 기본적으로 낮은 대역폭을 의미하며, 높은 왕복 시간 여행, 그리고 가끔 패킷 손실 이제 블록이 어떻게 작동하는지 살펴 보겠습니다

그래서 나는 블로그를 완전히 제거했다 이 전화에서 모든 캐시가 지워졌습니다 마치이 전화가 블로그를 방문한 적이없는 것처럼 보입니다 블로그를 새로 고침하면 1 초에서 2 초 만에 블로그를 볼 수 있습니다 내용이 있습니다

여전히 초보적입니다 마찬가지로 스타일이 누락되었지만 사용자가 읽기 시작할 수 있습니다 약 10 초 후에 꾸밈음이 거기, 헤더 로고가 완료되었습니다, 블로그는 3G 네트워크를 통해로드가 완료된 것처럼 보입니다 여기서 흥미로운 점은 백그라운드에서, 선적은 실제로 지금 계속되고 있습니다 다음 40 초 또는 50 초 동안 계속 그렇게 할 것입니다

하지만 그건 중요하지 않습니다 왜냐하면 사용자의 경우, 그것은 완료된 것 같습니다 로드가 완료되고 페이지와 상호 작용을 시작하십시오 그리고 그것은 바로 제가 이번에 얘기하고 싶은 것입니다 CSS가 어떻게로드되도록 구성 할 수 있는지에 대해 이야기하고 싶습니다

여전히 당신에게주는 동안 필요한 모든 창의적인 유연성 나는 여기서 아주 간단한 기술을 채택했다 페이지에있는 모든 구성 요소에 대해 구성 요소는 머리글이나 바닥 글과 같은 것으로, 또는 기사 – 두 개의 CSS 파일이 있습니다 그리고 그 중 하나는 중요한 스타일로 가득차 있습니다 다른 파일은 내가 게으른 스타일이라고 부르는 것입니다

이를 좀 더 자세히 설명하기 위해 예제를 살펴 보겠습니다 예를 들어 기사의 스타일을 살펴 보겠습니다 중요한 스타일을 보면, 당신은 우려되는 것을 발견 할 것입니다 레이아웃, 채색 및 시각적 공간 할당, 박스 그림자, 이미지 또는 글꼴에 관한 것 이러한 모든 꾸밈음은 게으른 스타일입니다

요소의 공간을 할당하려는 이유 가능한 한 빨리 게으른 스타일이 결국 들어와, 나는 뛰어 다니는 것을 시작하고 싶지 않아 화면에 우리는 모두 일부 웹 사이트에서 그것을 보았습니다 갑자기 읽고 시작하는 곳 아래쪽으로 이동하십시오

그리고 그것은 단지 성가신 일입니다 그래서 나는 그런 일이 일어나기를 확실히 원하지 않았습니다 그래서 모든 중요한 스타일은 레이아웃이 거기에 있는지 확인합니다 요소가 많은 공간을 할당한다는 것 평생 동안 필요하기 때문입니다 그러나 여기에 비틀기가 있습니다

중요한 스타일은 실제로 일치합니다 따라서 헤더 PHP를 살펴 본다면, 기본적으로 파일을 읽으려면 include를 사용하는 것을 볼 수 있습니다 그것을 HTML 파일 자체에 넣으십시오 그것은 WordPressy가 아닐 수도 있지만, 그래서 WordPress 개발자가 있다면 사과드립니다 이 접근 방식에 불쾌감을줍니다

하지만 효과가있어 충분히 좋을 것 같습니다 하지만 흥미로운 점은 사용자가 인덱싱 된 PHP 및 게으른 스타일에 대한 다른 모든 요청을받습니다 그리고 이것 저것 도착하기까지 영원히 걸릴 것입니다 페이지는 여전히 사용자에게 유용합니다 그들은 내 블로그 게시물을 읽을 수 있습니다

그리고 그것이 내가 원하는 것입니다 우리는 dev 도구로 이것을 에뮬레이션 할 수 있습니다 블로깅을 사용하여 그래서 JavaScript와 스타일에 대한 모든 요청을 차단할 것입니다 즉, PHP는 인덱스 만 가져올 것입니다 그리고 이렇게하고 페이지를 다시로드하면, 당신은 즉시 그 수를 볼 수 있습니다

아무 일도 일어나지 않습니다 그리고 나는 확실히 훌륭한 경험이 아니라는 것을 의미합니다 내가 원했던만큼 세련되지는 않습니다 그러나 블로그의 기능, 내 콘텐츠를 읽는 것이 여전히 효과가 있습니다 실제로 링크를 클릭 할 수도 있습니다

좋은 전환이 될 수는 없지만 여전히 효과가 있습니다 그리고 그것이 내가 생각하기에 정말로 중요하다고 생각하는 것입니다 이리 이것이 내 핵심 기술입니다 가능한 빨리 화면에 표시합니다

첫 번째 내용에 필요한 모든 인라인 창문, 그리고 게으른로드 다른 모든 당신이 이것을하고 필요한 모든 것을 넣으면 색인 된 HTML에 대한 첫 번째 응답에서 렌더링하려면, 방문 페이지가 무엇이든 상관없이 첫 번째 콘텐츠 – 전체 – 팬 측정 기준입니다 게으른 스타일에 대해 이야기 해 봅시다 내 머리글 PHP에서 조금 더 내려다 보면, 당신은 스크립트가없는 태그에 모든 게으른 스타일을 넣는 것을 볼 수 있습니다 이것은 잠시 동안 사용해온 약간의 트릭입니다

그리고 나는 자바 스크립트를 썼다 페이지가 완전히로드 될 때까지 대기하는 그런 다음 스크립트가없는 태그를 찾습니다 lazy-load 클래스 그리고 나서 그것은 모든 아이들을 찢어 버리고, 기본적으로, 그 시점에서 머리에 추가합니다 게으른 스타일의로드를 유발합니다

여기서 흥미로운 점은 사용자가 가지고 있다면, 어떤 이유로 자바 스크립트가 사용 중지되었습니다 또는 스크립트가 작동하지 않는 것입니다 스크립트 태그가없는 것입니다 이 아이들을 그 자체로 가능하게하십시오 no-script 태그의 목적

그리고 바로이 스타일을로드 할 것입니다 기본적으로 스타일로드는 블로킹 프로세스입니다 따라서 자바 스크립트를 사용하도록 설정하지 않은 경우, 당신은 여전히 ​​스타일 측면에서 완전한 경험을 얻을 수 있습니다 그러나 효율적으로로드되지는 않습니다 그러나 자바 스크립트를 사용하도록 설정 한 경우, 내 자신의 로딩 파이프 라인이 시작됩니다

훨씬 더 효율적으로 페이지를로드합니다 이것은 기본적으로 제가 여기서 선택하는 트레이드 오프입니다 아마도 그 대신에 주목할 가치가 있습니다 내 중요한 스타일을 인라인하는 중, 나는 또한 HTTP / 2 푸시를 사용하여 이러한 리소스를 푸시 다운 할 수있었습니다 클라이언트에게

하지만 제가 링크 한 Jake의 기사를 읽은 후에 설명에서, 나는 일종의 걱정이었다 너무 힘들어서 오른쪽으로 밀기가 어렵고 걱정하지 마라 브라우저 호환성 및 푸시 관련 정보 이미 필요하기 때문에 나는 정말로 필요하지 않다 캐시에 그래서 호환성과의 절충안을 선택했습니다

및 캐싱 효율성 말하자면, 그것이 바로 우리가하는 것입니다 다음 에피소드에서 이야기하려고합니다 헤더를 캐싱하고, 나에게 매우 중요한 것 그것은 당신이 많은 대역폭을 절약 할 수 있습니다 아직 다운로드하지 않은 것만 다운로드하면 캐시에서 동적 콘텐츠에 적용됩니다

[음악 재생]