[javascript] 11-02 생활코딩 웹브라우저 Javascript 8강/47강
11-02 공부내용
-
script load 방법
- inline 방법은 정보(html)와 제어를 함께 보여주기 때문에 유지보수에 불리하다.
- HTML에서 js 로드할 때는, script를 head 태그보단 body 태그 끝 쪽에 배치시키는 것이 사용자 경험 향상을 위해 좋음. body 태그에 있는 html 태그들을 모두 렌더링해주기 때문이다
-
Object Model
- 자바스크립트로 제어할 수 있는 모델. 객체화 시켜놓음.
- 브라우저가 미리 준비해놓은 객체: document. 객체가 가리키는 태그를 style이라는 프로퍼티로 css 동적으로 변경할 수 있다
-
Browser Object Model
- 웹브라우저의 창을 프로그래밍적으로 제어할 수 있도록 제공하는 수단. window 객체의 프로퍼티와 메소드를 공부하는 것이라 해도 과언이 아님
-
전역객체 window
- DOM이건 BOM이건 js의 Array들은 다 window 객체에 속해있다.
- 전역변수를 생성하고 그냥 함수를 선언하는 것은, window라는 전역객체의 프로퍼티 및 메소드가 되는 것이다.
Location 객체
- 문서의 주소, url 알려주는 window 객체의 프로퍼티. 주소표시줄의 url 알아낼 수 있는 방법이 location 객체
-
현재 윈도우의 URL 알아내기
location.toString() // 주소표시줄 url location.href // 주소표시줄 url -> 이게 더 선호console.log(location) // location 객체에 대한 정보를 console로 띄어줌 alert(location) // 문자화 해서 보여주기 때문에. 문자화된 현재 url 보여줌 = location.toString() 으로 동작하기 때문에. -
URL Parsing
-
location.protocol
http, https : 웹브라우저와 웹서버 (클라이언트 서버) 간에 통신을 주고받기 위한 일종의 규칙
-
location.host
각자의 ip, 서버 (=컴퓨터, 서비스) 를 식별하는 고유의 주소
-
location.port
아무것도 출력이 안되면 80 port, 8080이라던지 숫자는 컴퓨터에서 돌아가는 서버 소프트웨어를 식별하는 번호 (=서버컴터에 설치되어잇는 애플리케이션을 식별하는 번호)
-
location.pathname
웹서버가 가지고 있는 구체적인 디렉토리 및 정보를 보여주는 이름
-
location.pathname
정보요청하기 위해 쿼리스트링으로 전달한 값들. 물음표 뒤에 따라오는 정보들. (ex: ?id=10)
-
location.hash
문서모델(DOM)에 특정한 위치를 지정하게 되면 #를 붙힘으로서 북마크를 지정할 수 있음
-
-
URL 변경하기
- 다른 url로 이동해야할 때 사용함…! location.href = ‘다른 주소’; 와 location = ‘다른 주소’; 의 동작구현은 동일하다.
- 다시 새로고침하고싶다면 location.reload
Navigator 객체
- 자바스크립트를 이용해서 현재 js 가 실행되고 잇는 브라우저 제품명과 버전을 알 수 있음.
-
깨알속 브라우저 역사.
팀버너스리가 만들었지만 Netscape라는 회사가 브라우저를 만들어 js 를 창조했음. 근데 마소가 브라우저라는게 인터넷플랫폼 중 경쟁력이 가장 높을거라 생각해서 ie를 개발해 운영체제 번들로 넣어 배포함. 이 때 브라우저 전쟁이 일어남
예를 들면 addEventListener 와 attachEvent… w3c라는 웹표준, 표준기구가 창설되어 어느정도의 표준 기준을 마련해주었다. 하지만 여전히 브라우저별로 간극이 있는 상황. 브라우저별로 호환되는 스펙이 달라 차이점을 해결해주고 의도한대로 동일한 품질로 보여지게 하는 작업을 크로스브라우징이라고 한다.
-
-
navigator.appName
appName은 그렇게 변별력이 없다. (파폭, 사파리, 크롬 다 netscape라고 나오기 때문에)
-
navigator.userAgent (=브라우저 정보)
웹브라우저가 웹서버에게 요청할 때, WB에 대한 정보를 전달하는데 어떤 브라우저인지 알려줌
브라우저가 서버측으로 전송하는 user-agent http 헤더의 내용
-
navigator.platform
브라우저가 동작하고 있는 운영체제에 대한 정보