두 프런트 엔드 성능 최적화

크기가 감소 또는 자원의 수에 대한 첫 번째 요청 

1 및 가능한 압축 및 CSS와 JS 파일 등. (하나에 CSS 파일과 JS이 하나로 병합됩니다)
  요청의 수를 줄이기 위해 요청 된 자원의 크기를 줄이기 위해 HTTP 주로 : 이유
  포장 도구 :
  웹팩
  GULP
  그런트를
. ...
2 글꼴 아이콘을 사용하려고하거나 SVG 아이콘이 기존의 PNG 차트를 대체 할
  글꼴 아이콘 또는 SVG는 벡터이므로, 코드를 작성 Fangda 변형, 빠른 렌더링 속도되지 않습니다

이미지 게으른 로딩 (게으른 로딩)을 사용하여 3,
  로딩 중에 HTTP 요청의 첫 페이지의 수를 줄일 목적으로,
  특정 단계 :
    페이지가 자리도 배치하여로드 시작할 때, 하나는 HTTP 요청을 전송하지 않는다
    (2) 페이지를로드 완료, 눈에 보이는 이미지 영역을 다시 로딩 이미지를 요청하는 경우

4, JS를 사용하지 않는 CSS 할 수있는 효과는 쉽지 않다 타사 플러그인을 사용 할 기본 JS를 사용합니다.
  타사 라이브러리의 많은 수의 도입을 방지. 단지 안에 작은 기능을 사용하는 동안

5,지도 나 스프라이트 사진 스프라이트를 사용하여 말을하는 것입니다
  만 그 사용, 큰 이미지를 다운로드해야하는 큰지도에 그려진 모든 상대적으로 적은 리소스 이미지를
  사진 페이지의 위치의 측면에서 작은지도를 표시 (배경 위치 : 백분율 값)

6, 쿠키의 사용을 줄이기 클라이언트가 있기 때문에, (가장 중요한 로컬 쿠키의 저장 내용의 크기를 줄이는 것입니다) 그 정보는 항상 클라이언트와 서버에 전달 될 때 쿠키를 운영. 적절하게 설정하면, 매번 보내

요청이 쿠키를 수행한다

도 7을 참조하면, 전방 및 후방은 송신 JSON 형식의 수 등의 데이터에 기초하여, 데이터 교환을 종료한다. 사용 된 XML에 대하여
  이 우위가 운송
  목적 : 데이터 처리, 작은 자원을 촉진하는 것

8, 프론트 엔드와 백엔드 협상의 합리적인 사용 연결 유지

도 9는, 프런트 엔드 서버는 압축 응답 자원의 사용을 협상

은 iframe을 사용하여 10 피가
  나쁜 관리 및 제어뿐만 아니라 스타일이며,이 페이지와 다른 페이지에 중첩에 해당, 소비는 성능을 더욱 향상 될 것입니다. 자원은 중첩 된 페이지를로드로 돌아가 있기 때문에

요청이 AJAX 기반의 데이터 교환을 얻을 때 (11)는, 요구 사항에 따라 캐시를 생성하도록 구성 할 수 있습니다 (참고 :
캐시가 아닌 우리가 자주 상태 코드 (304), 데이터를 가져 오기 위해 로컬 브라우저 참조) 때문에, 같은에서 다음 주소 데이터 수집
, 수집 된 데이터는 시간에 캐시됩니다. (참고 : 드물게 일반적으로 할 필요에 따라 비워 사용하지 않습니다.)

둘째, 코드 최적화 관련

1, JS에서 클로저의 사용을 최소화
  폐쇄의 사용, 폐쇄의 내용이 공개되지 않습니다 : 이유

2 DOM 조작을 줄이고, 주로 DOM 환류 (재배치) 묘화 줄이기 위해
  (환류)에서 분리 된 읽기 재 배열이다 스타일의 복수의 스타일이없는 하나씩 함께 설정에만 제공된다면 설정. 데이터 바인딩 (DOM을 동적으로 생성) 할 문서 단편 또는 문자열 연결을 사용

3, 중첩 루프에서 JS에서 "무한 루프"피 (무한 루프의 경우에, 브라우저가 카드를 직접합니다)

신체의 CSS에 넣어 4, 아래의 몸에 JS
  CSS를로드 할 수 (참고 :이 최적화에별로 중요하지 않습니다)

5, 감소 CSS를 사용 식

오른쪽에서 해결 6, CSS를 선택 구문 분석 규칙도 왼쪽으로. 선택 대상으로서 탭 요소를 좁게

7 층에 별도의 애니메이션 요소를 설정하려고 (또는 역류 크기 다시 그리기 방지)
  참고 : 레이어 너무 많이하지 설정, 그렇지 않으면 효과뿐만 아니라하지만 더 나쁜 도착하지 않았습니다

도 8은, 가능한 한 낮은 결합 고분자로 패키징 공정을 JS. 중복 코드 페이지를 감소

상자가 동일하지 않도록 평면 9 측위 CSS 후에 Z- 색인 바람직 박스의 계층을 변경할 때 사용

@import 동기 운전으로 만 패턴 도입에 대응하는 식의 도입을 최소화 @Import CSS를 도입 할 때 (10)는, 다운 Jiazi를 계속하고, 동작은 비동기 링크이다

window.requestAnimationFrame (JS 프레임 애니메이션) 대신 전통적인 애니메이션 타이머를 사용하여 11,
  당신이 애니메이션을 수행 수시로 사용하려는 경우, 당신은 사용하기 위해 setInterval을,에서는 setTimeout을 사용하지 않아야
  대신하여 setInterval 타이머를. 단점하여 setInterval 타이머가 있기 때문에 두 개의 애니메이션 간격을 일으킬 수 있음
  단축

12, 재귀의 사용을 최소화합니다. 죽은 반복적으로 피
  결의를 : 우리는 꼬리 재귀를 사용하는 것이 좋습니다

13 기반의 스크립트 태그 다운로드 JS 파일은 비동기로드 비동기 적으로 지연 또는 사용할 수 있습니다

도 14는, 이벤트에 결합 가능한 한 이벤트 위임 사용주기 DOM 소자 이벤트 핸들러에 결합 된 감소시킨다.

(15)은 가능한 한 낮은 결합 고분자로 패키징 공정을 JS. 중복 코드 페이지를 감소

16 플래시의 사용을 줄이기 위해

셋째, 저장

백엔드와 함께 (1), (로컬로 데이터를 가져 브라우저를 말하고, 백엔드 (304)에 의해 반환하도록) 일부 캐싱을 할, 브라우저의 캐시 기술을 사용합니다. 캐시로 변경 약간의 정적 리소스가 덜 할 수 있습니다 : (단점이 있습니다 참고). 예를 들어 일부 사진, JS, CS

2, 몇 가지 간단한 데이터 저장을 수행하는 새로운 기능 H5 (로컬 스토리지, sessionStorage)를 사용하여
  배경에 요청 된 데이터를 피하거나 일부 데이터가 오프라인으로 표시 할 수 있습니다.

넷째, 다른 최적화

1, iframe이 나쁜 관리 및 제어 스타일뿐만 아니라 사용하지 말고,이 페이지를 다른 페이지에 중첩에, 소비는 더 큰 성과가 될 것입니다 동일합니다. 자원은 중첩 된 페이지를로드로 돌아가 있기 때문에

2 페이지가 비동기 프로그래밍 및 데이터 수집 지연 배치로드의 사용이다, 주로 응답하지 않는 브라우저를 방지하기 위해 데이터의 비동기로드를 사용합니다. 데이터를로드 동기화, 크고 매우 느린를 사용하는 경우
  다음 페이지가 몇 시간 동안 차단됩니다. 목적 :, 요청 된 데이터가 렌더링을 지연되지 번지 페이지 개선하기 위해
  렌더링 효율을. 해결 방법 : 첫 번째 영역을 숨겨 데이터 등 반환 된 데이터의 바인딩 후에 나타나는 바인딩 동적 필요
  지연 유사한 사진 배치 로딩 지연로드. 첫 페이지로드 시간은 HTTP 요청의 수를 줄이기

3, 오디오 및 비디오 탭 페이지는 우리가 페이지로드는 이러한 리소스를로드 할 수 없을 때 나타납니다 (또는 처음로드 매우 느려질 수)
  해상도 : 단순히 오디오 및 비디오 = 아무도를 미리로드하지 않으려면.
  목적 : 페이지가로드 될 때까지 기다린하려면 지아 Zian에 오디오 및 비디오 오디오 및 비디오 자료를 재생하고자 할 때

4 층에 별도의 애니메이션 요소를 설정하려고 (또는 역류 크기 다시 그리기 방지)
  참고 : 레이어 너무 많이하지 설정, 그렇지 않으면 효과뿐만 아니라하지만 더 나쁜 도착하지 않았습니다

추천

출처www.cnblogs.com/mary-123/p/11269500.html