BOM 개요 및 최상 위 대상 window 의 속성 과 방법

11683 단어 BOM
1. BOM 개요
1.1 BOM 이란 무엇 인가
BOM (Browser Object Model) 은 브 라 우 저 대상 모델 로 내용 에 독립 되 어 브 라 우 저 창 과 상호작용 을 하 는 대상 을 제공 합 니 다. 핵심 대상 은 window 입 니 다.
BOM 은 일련의 관련 대상 으로 구성 되 고 모든 대상 이 많은 속성 과 방법 을 제공 합 니 다.
BOM 은 표준 이 부족 하고 JavaScript 문법의 표준화 조직 은 ECMA 이 며 DOM 의 변 준 화 조직 은 W3C 이 며 BOM 은 처음에 Netscape 브 라 우 저 표준 의 일부분 이 었 다.
  • DOM
  • 문서 대상 모델
  • DOM 은 문 서 를 하나의 대상 으로 보 는 것 이다
  • DOM 의 최상 위 대상 은 document
  • 이다.
  • DOM 은 주로 조작 페이지 요소
  • 를 배 웠 다.
  • DOM 은 W3C 표준 규범
  • BOM
  • 브 라 우 저 대상 모델
  • 브 라 우 저 를 대상 으로 본다
  • BOM 의 최상 위 대상 은 window
  • BOM 은 브 라 우 저 창 상호작용 의 일부 대상
  • 을 배 웠 다.
  • BOM 은 브 라 우 저 업 체 가 각 브 라 우 저 에서 정의 한 것 으로 호환성 이 떨어진다.


  • 1.2 BOM 의 구성
    window 대상 은 브 라 우 저의 최상 위 대상 으로 이중 역할 을 합 니 다.
  • JS 가 브 라 우 저 창 을 방문 하 는 인터페이스 입 니 다.
  • 그것 은 전체적인 대상 이다.전역 역할 영역 에 정 의 된 변수, 함 수 는 모두 window 대상 의 속성 과 방법 이 됩 니 다.

  • 2. window 대상 의 흔 한 이벤트
    2.1 창 불 러 오기 이벤트
    //       
    window.onload = function() {}
    or
    window.addEventListener('load/DOMContentLoaded',function(){})
    

    주의:
  • window. onload 가 있 으 면 JS 코드 를 페이지 요소 위 에 쓸 수 있 습 니 다. onload 는 페이지 내용 을 모두 불 러 온 다음 처리 함수
  • 를 실행 하기 때 문 입 니 다.
  • window. onload 전통 등록 방식 은 한 번 만 쓸 수 있 으 며, 여러 개 있 으 면 마지막 window. onload 를 기준 으로 한다.
  • addEventListener 를 사용 하면 제한 이 없습니다
  • load: 문서 내용 을 완전히 불 러 오 면 이 이벤트 (이미지, 스 크 립 트 파일, CSS 파일 등 포함)
  • 를 실행 합 니 다.
  • DOMContentLoaded 는 DOM 로 딩 이 완료 되 었 습 니 다. 그림 플래시 css 등 은 포함 되 지 않 습 니 다 (로드 속도 가 load 보다 빠 릅 니 다)
  • 2.2 창 크기 조정 이벤트
    window.onresize = function() {}
    or
    window.addEventListener('resize', function(){})
    
  • 창 크기 가 픽 셀 로 바 뀌 면 이 사건 이 발생 합 니 다.
  • 이 사건 을 자주 이용 하여 응답 식 구 조 를 완성 합 니 다.window. inner Width 현재 화면의 너비
  • 3. 타이머
    3.1 두 가지 타이머
  • setTimeout()
    setTimeout(function(){...},    )
    // 1.          ,   ,   0
    // 2.            ,               (   )。
    // 3.       ,             ,         
    
  • setInterval()
    setInterval(    ,    )
    

  • 두 가지 차이 점: setTimeout: 지연 시간 이 되면 호출 하고 한 번 호출 하면 끝 납 니 다.setInterval: 이 시간 간격 으로 호출 하고 여러 번 호출 합 니 다.
    3.2 정지 타이머
    clearTimeout(    )
    or
    clearInterval(    )
    

    3.3 this 가 가리 키 는 문제
    일반적인 상황 에서 this 의 최종 지향 은 호출 대상 입 니 다.
  • 전역 작용 역 이나 일반 함수 에서 this 가 전역 대상 윈도 우 를 가리 키 고 있 음 (타이머 안의 this 가 윈도 우 를 가리 키 는 것 을 주의 하 십시오)
  • 방법 호출 중 누가 this 를 호출 하여 누 구 를 실행 합 니까
  • 구조 함수 에서 this 지향 구조 함수 의 인 스 턴 스
  • <scrip>
        // 1.             this      window(        this  window)
    	console.log(this);//window
        
        function fn() {
        	console.log(this);//window
    	}
        setTimeout(function() {
        	console.log(this); //window
        }, 1000)
        
        // 2.         this   
        var o = {
        		sayHi: function() {
        			console.log(this);//o
        	}
        }
        o.sayHi();
        // 3.      this         
        function Fun() {
        	console.log(this); //this   fun    
        }
        var fun = new Fun();
    scrip>
    
    

    4. JS 실행 메커니즘
    4.1 JS 는 단일 라인
    JavaScript 언어의 큰 특징 은 단일 스 레 드 입 니 다. 즉, 같은 시간 에 한 가지 일 만 할 수 있다 는 것 입 니 다.모든 임 무 는 줄 을 서서 앞의 임무 가 끝나 야 다음 임 무 를 수행 할 수 있다 는 뜻 이다.문 제 는 JS 가 너무 오래 실행 되면 페이지 렌 더 링 이 연결 되 지 않 아 페이지 렌 더 링 이 막 히 는 느낌 을 줄 수 있다 는 것 이다.
    4.2 동기 화 와 비동기
    상기 문 제 를 해결 하기 위해 다 핵 CPU 의 컴 퓨 팅 능력 을 이용 하여 HTML 5 는 웹 Worker 표준 을 제시 하여 자바 스 크 립 트 가 여러 스 레 드 를 만 들 수 있 도록 합 니 다.
    동기 화 작업
    동기 화 작업 은 주 스 레 드 에서 실 행 됩 니 다. 실행 스 택 을 만 듭 니 다.
    비동기 임무
    JS 의 이 보 는 반전 함 수 를 통 해 이 루어 진다.
    일반적으로 비동기 임 무 는 다음 과 같은 세 가지 유형 이 있다.
  • 이벤트, 예 를 들 어 클릭, 크기 조정 등
  • 자원 로드, 예 를 들 어 load, error 등
  • 타이머, setInterval, setTimeout 등
  • 비동기 작업 관련 리 셋 함수 가 작업 대기 열 에 추가 되 었 습 니 다 (작업 대기 열 은 메시지 대기 열 이 라 고도 합 니 다)
    4.3 JS 실행 메커니즘
  • 스 택 의 동기 화 작업 을 먼저 수행 합 니 다.
  • 비동기 작업 (리 셋 함수) 을 작업 대기 열 에 넣 습 니 다.
  • 스 택 에 있 는 모든 동기 화 작업 이 완료 되면 시스템 은 작업 대기 열 에 있 는 비동기 작업 을 순서대로 읽 습 니 다. 그래서 읽 힌 비동기 작업 이 대기 상 태 를 마치 고 실행 스 택 에 들 어가 서 실행 을 시작 합 니 다.

  • 사례 1:
    console.log(1);
    setTimeout(function() {
        console.log(2);
    },0);
    console.log(3);
    //      1 3 2
    

    사례 2:
    console.log(1);
    document.onclick = function() {
        console.log('click');
    }
    console.log(2);
    setTimeout(function() {
        console.log(3);
    }, 3000)
    //   
    // 1. console.log(1);        1
    // 2. document.onclick = fn;    ,         ,         ,            
    // 3. console.log(2);        2
    // 4. setTimeout(fn, 3000);     ,          
    // 5.    1 2                           
    //  :           1 2 click 3
    //            1 2 3 click
    //              、    、     、   ,           (event loop)
    
    

    5. location 개체
    5.1 location 대상 이 무엇 입 니까?
    window 대상 은 창의 URL 을 가 져 오 거나 설정 할 수 있 는 location 속성 을 제공 하고 URL 을 분석 할 수 있 습 니 다.
    5.2 location 대상 의 속성
  • location. href: 전체 URL 가 져 오 거나 설정
  • location. host: 호스트 (도 메 인 이름) 로 돌아 가기
  • location. port: 포트 번호 되 돌려 주기
  • location. pathname: 되 돌아 오 는 경로
  • location. search: 인자 되 돌려 주기
  • location. hash: 세 션 을 되 돌려 줍 니 다 \ # 뒤의 내용 은 닻 점 연결 에서 흔히 볼 수 있 습 니 다
  • 5.3 location 대상 의 방법
  • location. assign (): href 와 마찬가지 로 페이지 를 뛰 어 넘 을 수 있 고 뒤로 물 러 설 수 있 습 니 다
  • location. replace (): 현재 페이지 를 교체 합 니 다. 역 사 를 기록 하지 않 기 때문에 페이지 를 뒤로 물 러 설 수 없습니다
  • location. reload (): 페이지 를 다시 불 러 옵 니 다. 새로 고침 단추 나 f5 에 해당 합 니 다. 매개 변수 가 true 라면 ctrl + f5
  • 를 강제로 새로 고침 합 니 다.
    6. navigator 대상
    navigator 대상 은 브 라 우 저 에 대한 정 보 를 포함 하고 있 습 니 다. 많은 속성 이 있 습 니 다. 가장 많이 사용 되 는 것 은 userAgent 입 니 다. 이 속성 은 클 라 이언 트 가 서버 를 보 낸 user - agent 머리 값 을 되 돌려 줍 니 다.
    7. history 대상
    window 대상 은 브 라 우 저 기록 과 대화 할 수 있 도록 history 대상 을 제공 합 니 다.이 대상 은 사용자 가 (브 라 우 저 창 에서) 방문 한 URL 을 포함 합 니 다.
    history 대상 방법
  • back (): 후퇴 기능
  • forward (): 전진 기능
  • go (매개 변수): 매개 변 수 는 1 표 전진 1 페이지 이 고 - 1 표 후퇴 1 페이지 입 니 다.
  • 좋은 웹페이지 즐겨찾기