웹 애플리케이션의 성능을 끌어올릴 야후! 개발자의 자바스크립트 비법. 야후!의 선임 프런트 엔드 엔지니어이자 야후! UI(YUI) 라이브러리 개발에 참여한 니콜라스 자카스가 자바스크립트 성능 최적화를 위한 방법을 제시한다. [script] 태그의 위치가 성능에 영향을 미치는 이유부터 시작해서 D- M 처리, 페이지 수명 주기, 실행 시간 개선을 위한 방법을 알려준다.
목차
옮긴이 서문 지은이 서문
CHAPTER 1 로딩과 실행 01 스크립트의 위치 02 스크립트 묶기 03 비차단 스크립트 지연 스크립트 동적 「script」 태그 MLHttpRequest 스크립트 삽입 04 추천하는 비차단 패턴 YUI 3에서 쓰는 방법 LazyLoad 라이브러리 LABjs 라이브러리 05 요약
CHAPTER 2 데이터 접근 01 스코프 관리 스코프 체인과 식별자 해석 식별자 해석 성능 스코프 체인 확장 동적 스코프 클로저, 스코프, 메모리 02 객체 멤버 프로토타입 프로토타입 체인 중첩 멤버 객체 멤버의 값 캐시하기 03 요약
CHAPTER 3 DOM 스크립팅 01 브라우저 세계의 DOM 태생부터 느립니다 02 DOM 접근과 수정 innerHTML VS DOM 메서드 노드 복제 HTML 컬렉션 DOM 이동 03 리페인트와 리플로우 리플로우가 일어날 때 렌더 트리 변경을 모았다가 한 번에 처리하기 리플로우와 리페인트 최소화하기 레이아웃 정보 캐시 애니메이션할 때 요소를 흐름 밖으로 꺼내기 인터넷 익스플로러와 :hover 04 이벤트 위임 05 요약
CHAPTER 4 알고리즘과 흐름 제어 01 루프 루프의 종류 루프 성능 함수에 기반을 둔 반복 02 조건문 if-else VS switch if-else 최적화 참조 테이블 03 재귀 콜 스택 제한 재귀 패턴 반복 메모이제이션 04 요약
CHAPTER 5. 문자열과 정규 표현식 01 문자열 병합 플러스(+) 연산자와 플러스 이퀄(+=) 연산자 배열 병합 Stringprototypeconcat 02 정규 표현식 최적화 정규 표현식이 동작하는 방법 역추적 이해하기 역추적 폭주 벤치마크 시 참고할 것 정규 표현식의 효율성을 올리는 더 많은 방법 정규 표현식을 쓰지 않는 것이 좋을 때 03 문자열 트리밍 정규 표현식으로 트리밍 구현 정규 표현식 없이 트리밍 구현 장점만 취한 해결책 04 요약
CHAPTER 6 응답성 좋은 인터페이스 01 브라우저 UI 스레드 브라우저의 한계 얼마나 길면 너무 긴 걸까요? 02 타이머 다루기 타이머 기초 타이머 정확도 타이머를 이용한 배열 처리 할 일 나누기 코드 타이밍 타이머와 성능 03 웹 워커 워커 환경 워커 통신 외부 파일 불러오기 현실적인 사용 04 요약
CHAPTER 7 Ajax 01 데이터 전송 데이터 요청 데이터 보내기 02 데이터 포맷 XML JSON HTML 커스텀 포맷 데이터 포맷 결론 03 Ajax 성능 가이드 데이터를 캐시하십시오 당신이 쓰는 Ajax 라이브러리의 한계를 파악하십시오 04 요약
CHAPTER 8 프로그래밍 사례 01 이중 평가를 피하십시오 02 객체/배열 리터럴을 사용하십시오 03 작업을 반복하지 마십시오 게으른 로딩 조건에 따른 미리 읽기 04 빠른 부분을 이용하십시오 비트 연산자 내장 메서드 05 요약
CHAPTER 9 고성능 자바스크립트 애플리케이션 빌드와 배포 01 아파치 앤트 02 자바스크립트 파일 결합 03 자바스크립트 파일 전처리 04 자바스크립트 최소화 05 빌드 타임 VS 런타임 빌드 과정 06 자바스크립트 압축 07 자바스크립트 파일 캐시 08 캐시 문제 완화 09 콘텐츠 전송 네트워크를 사용합니다 10 자바스크립트 자원 배포 11 애자일 자바스크립트 빌드 과정 12 요약
CHAPTER 10 도구 01 자바스크립트 프로파일링 02 YUI Profiler 03 익명 함수 04 파이어버그 콘솔 패널 프로파일러 콘솔 API Net 패널 05 인터넷 익스플로러 개발자 도구 06 사파리 웹 인스펙터 프로파일 패널 리소스 패널 07 크롬 개발자 도구 08 스크립트 차단 09 Page Speed 10 Fiddler 11 YSlow 12 dynaTrace 13 요약