1. 시작 단계
브라우저가 HTML 페이지를로드 할 때 먼저 HMTL 페이지를 DOM 트리에 구문 분석 한 다음 DOM 트리의 각 요소 노드를 하나씩로드한다는 것을 알아야합니다. AngularJS를 jQuery와 유사한 JS 라이브러리로 취급 할 수 있습니다. <cript> 태그를 통해 HTML에 소개합니다. 현재 Angular는 브라우저가 구문 분석되기를 기다리는 일반적인 DOM 노드가됩니다. 브라우저 가이 노드를 구문 분석하고 JS 파일임을 알게되면 브라우저는 나머지 DOM 노드를 구문 분석하지 않고이 JS (예 : Angular.js)를 실행하기 시작합니다. 동시에 Angular는 브라우저의 DomContentLoaded 이벤트를들을 수있는 이벤트 리스너를 설정합니다. 각도 가이 이벤트를 듣게되면 각도 응용 프로그램이 시작됩니다.
2. 초기화 단계
Angular가 시작되면 NG-App 지시문을 찾은 다음 일련의 필요한 구성 요소 (예 : $ 인젝터, $ Compile Service 및 $ Rootscope)를 초기화 한 다음 DOM 트리를 다시 구문 분석하기 시작합니다.
3. 컴파일 및 링크
$ Compile Service는 DOM 트리를 통과하여 선언 된 지침으로 DOM 요소를 찾습니다. 하나 이상의 지침으로 DOM 요소를 만나면 명령어를 정렬 한 다음 (명령의 우선 순위에 따라) $ 인젝터 서비스를 사용하여 명령어의 컴파일 기능을 찾고 수집하여 실행합니다.
각 노드의 컴파일 메소드가 실행되면 $ Compile 서비스는 링크 기능을 호출합니다. 이 링크 함수는 폐쇄 범위에 바인딩 된 지침에 대한 모니터링을 설정합니다. 이 동작은 라이브 뷰를 만듭니다.
마지막으로 $ Compile 서비스가 완료된 후 AngularJS 런타임이 준비되었습니다.
4. 작동 단계
Angular는 자체 이벤트 루프를 제공합니다. 명령 자체는 이벤트 리스너를 등록하므로 이벤트가 트리거되면 angularJS의 $ 다이제스트 루프에서 명령 함수가 실행됩니다. $ 다이제스트 루프는 $ watch 표현 목록을 기다립니다. 모델 변경이 감지되면 $ 시계 기능이 호출되고 $ watch 목록이 다시보고 모델이 변경되지 않았는지 확인합니다.
$ Digest 루프가 안정화되고 잠재적 인 변경이 감지되지 않으면 실행 프로세스는 각도 컨텍스트를 떠나 일반적으로 브라우저로 돌아 오며 DOM이 여기에서 렌더링됩니다.
위의 프로세스의 주요 단계를 다음과 같이 그래프로 그립니다.
위의 것은 AngularJS 실행 프로세스에 대한 자세한 소개입니다. 우리는 향후 관련 정보를 계속 구성 할 것입니다. 이 웹 사이트를 지원 해주셔서 감사합니다.