2017-11-17 8 views
0

페이스 북의 pageltes 및 Quora's Faster Paint에 대해 읽었습니다.이 기술을 통해 프런트 엔드 로딩 최적화

내가 이해하는 가장 좋은입니다

  1. 시작은
  2. 가 'pagelets'
  3. 의 형태로 최초의 인라인 CSS와 페이지 분열과 페이지의 기본 레이아웃을 전송 가능한 한 빨리 (청크 분할 전송)로 전송
  4. 응답을 가져올 때이 페이지 릿을 계속 채우고 (CSS와 함께)
  5. 스크립트 및 기타 리소스를 다운로드하십시오.

이 접근법은 효율적으로 보입니다. 이 부분에서 더 무엇이 더 추가되거나 생략 될 수 있습니까?

나는 이것이 광범위하다는 것을 알고 있지만 어떻게 구현 될 수 있습니까?

우리는 이것에 대한 스트리밍 응답을 보내야합니까?

프런트 엔드는 어떻게 응답합니까?

또한 기사를 더 읽고 더 읽을 수 있다면 감사 할 것입니다.

+0

안녕하세요. 불행히도이 질문은 StackOverflow에서 너무 광범위합니다. 질문에 대한 가이드 라인을 참조하십시오. https://stackoverflow.com/help/how-to-ask – deiga

+0

@deiga 누군가가 위대하고 실용적인 기사를 공유 할 수 있다면 기쁠 것입니다. – sachsure

답변

1

프런트 엔드 최적화 웹 성능을 향상시키는 팁.

다양한 이유로 매일 수백만 개의 웹 사이트에 액세스합니다. 불행히도 많은 웹 사이트가 제대로 최적화되지 않았습니다.

- 불완전하게 최적화 된 웹 사이트는 느린 로드 시간, 브라우저 호환성 문제 등 다양한 문제로 어려움을 겪습니다.

다음 기술은 프런트 엔드 최적화를 향상시키는 데 도움이됩니다.

HTML 문서를 정리하고 간결하게 작성하고 효과적인 방법으로 작성하십시오.

-> 적절한 CSS 배치. 점진적 렌더링을 보장하기 위해 모든 외부 스타일 시트를 Html 문서 머리글 의 맨 위에 놓습니다.

<head><link href='https://yourwebsite.com/css/style.css' rel='stylesheet'type='text/css'></head> 

적절한 자바 스크립트 배치

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <===========> 

<!-- For laoding js related files --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 
</body> 
</html> 

Additionaly 당신은 항상 선호한다 자바 스크립트 "비동기"스크립트 로딩을 사용하는 경우. 이렇게하면 모든 태그가 HTML 렌더링 프로세스를 차단하는 것을 방지 할 수 있습니다.

<script src="demo_defer.js" async></script> 

비동기 스크립트 무엇인가?
비동기 (AKA 비동기)를 사용하여 스크립트를로드하면 스크립트로드 과정에서 웹 페이지 렌더링을 방해하지 않습니다.이렇게하면 스크립트가 로드되어야 할 때마다 구문 분석이 일시 중지되지 않으므로 웹 페이지가 더 빨리 렌더링됩니다 ( ). 또한 여러 스크립트를 동시에로드 할 수 있으므로 한 스크립트가 을 다른 스크립트에 종속시키지 않으므로 이점이 있습니다.

동기 및 비동기 로딩의 차이점 ??

동기 스크립트로드는 다음과 같은 방식으로 작동합니다 : 그것은로드 태그를 만나면

  • HTML 구문 분석이 일시 정지 기적

    요청은 (외부 경우) 파일을 가져 오기 위해 만든
  • 스크립트가 즉시 다운로드되고 실행됩니다. HTML 파싱 재개

  • 이 비동기 요청이 (외부 경우)
  • 이 스크립트는 파일을 가져 오기 위해 만든
  • 를로드하는 태그를 만나면 분석이 계속

    • HTML : 617,451,515,

    비동기 스크립트 로딩과 같이 작동 백그라운드에서 다운로드되어 완료되면 실행됩니다.

CSS 축소, JS와 HTML

축소에서는 기술을 사용하면 파일 내에서 불필요한 문자를 제거하는 데 도움이 될 수 있습니다. 편집기에서 코드를 작성할 때 들여 쓰기, 주석을 사용하는 경우가 많습니다. 이러한 메서드는 코드를 깨끗하고 읽기 쉬운 상태로 유지하는 가장 좋은 방법이지만 추가 바이트를 문서에 추가합니다.

예를 들어 축소를 적용하기 전에 아래의 CSS 코드를 확인하십시오. 여기에 여분의 공백이 있고, 들여 쓰기 & 개의 댓글이 있습니다.

.navbar-default{ 
    border-radius: 0px; 
    background: -webkit-linear-gradient(to right,#dd4959, #852742); /* 
    Chrome 10-25, Safari 5.1-6 */ 
    background: linear-gradient(to right,#dd4959, #852742); /* W3C, IE 10+/ 
    Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ * 
     } 
    #menu { 
     border-radius: NaNpx; 
     margin-top: 69px; 
     margin-left: 66px; 
     margin-bottom: 48px; 
     background: -webkit-linear-gradient(to right,#dd4959, #b852742); /* 
     Chrome 10-25, Safari 5.1-6 */ 
     background: linear-gradient(to right,#dd4959, #852742); /* W3C, IE 
     10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ 
     } 
     #form{ 
      /* fallback for old browsers */ 
      background: -webkit-linear-gradient(to right,#dd4959, #852742); 
     /* Chrome 10-25, Safari 5.1-6 */ 
      background: linear-gradient(to right,#dd4959, #852742); /* W3C, IE 
      10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ 
      padding-top: 10px; 
      padding-left: 120px; 
      } 
      #form h1 { 
      color: white; 
      font-family: 'Poppins'; 
      font-size: 60px; 
      margin-left: 11px; 
       } 

그리고 여기에는 축소가 적용된 후 동일한 스 니펫이 있습니다.

.navbar-default{border-radius:0; 
    background:-webkit-linear-gradient(toright,#dd4959,#852742); 
    background:linear-gradient(to right,#dd4959,#852742); 
    background:linear-gradient(to right,#dd4959,#852742)} 
#form{background:-webkit-linear-gradient(to right,#dd4959,#852742); 
    background:linear-gradient(to right,#dd4959,#852742); 
    padding-top:10px;padding-left:120px} 
#form h1{color:white;font-family:'Poppins'; 
    font-size:60px;margin-left:11px} 
는 CDN 및 캐싱
  • 증가 속도. CDN을 사용하면 사이트 방문자가 가장 가까운 서버에서 데이터를로드 할 수 있습니다. CDN을 사용하는 경우 사이트의 파일은 전세계에 빠른 배송 으로 자동 압축됩니다.
파일을 압축합니다.

당신이 는 CDN은 프런트 엔드 최적화를 향상시키기 위해 기원 서버에있는 파일의 압축 방법을 사용하는 것이 사용하지 않는 경우 많은 CDN 서비스는, 당신을 위해 파일을 압축되지만. 파일 압축은 으로 사이트 내용을 밝고 쉽게 관리 할 수 ​​있습니다. 일반적으로 가장 많이 사용되는 파일 압축 방법 중 하나 인 은 Gzip입니다. 압축되지 않은 문서, 오디오 파일, PNG 이미지 및 기타 부피가 큰 파일을 축소하는 데 유용한 방법입니다.

Brotli는 여전히 새로운 파일 압축 알고리즘 인 이지만 인기가 높아지고 있습니다. 이 오픈 소스 알고리즘은 Google 및 기타 조직의 소프트웨어 엔지니어가 정기적으로 업데이트합니다 ( ). 그것 은 다른 기존의 방법보다 훨씬 더 나은 비율로 파일을 압축하는 것으로 입증되었습니다. 이 알고리즘에 대한 지원은 여전히 ​​최소이지만 다음 기본 파일 압축 알고리즘이 될 수 있습니다.

  • 는 프론트 엔드 최적화의 방법에 익숙 사람들에 대한 이미지

최적화, 이미지는 웹 사이트 킬러가 될 수 있습니다. 사이트의 거대한 사진 앨범과 고해상도 이미지 인 은 렌더링 프로세스를 방해 할 수 있습니다. 최적화되지 않은 고화질 이미지의 무게는 메가 바이트입니다. 따라서이를 적절히 최적화하면 사이트의 프런트 엔드 성능이 향상됩니다.