1993 Mosaic Web Browser 출시
1994 Netscape Navigator (조금 더 ui 요소가 더해짐)
Marc Andreessen - 어떻게 하면 동적인 웹사이트를 만들 수 있을까? 고려
Brendan Eich에게 Scheme Script 성격을 유지하면서 문법은 조금 더 java 스럽게 새로운 언어를 만들자고 제안 그런데 10일안에 만들자고 제안...!
(Mocha=) LiveScript 탄생
Navigator 안에는 LiveScript를 이해하고 실행할 수 있는 Interpreter를 포함시켜 브라우저를 출시
LiveScript를 JavaScript로 이름 변경
MS에서도 JavaScript를 따라한 JScript라고 이름을 붙힌 Script를 인터넷 익스플로우와 출시
개발자들은 너무나 다른 두 브라우저에서도 잘 동작하는 웹사이트를 만들어야 했음
1997 ECMA International JavaScript로 표준화를 만들어보자
ECMAScript1 출시
2000 MS Internet Explorer는 ECMA 표준안에 참가하지 않기로 선언
2004 Firefox출시 ECMA에 ActionSciprt3와 Tamarin으로 표준안을 다시 만들어보자고 제안
2004 Jesse James Garrett AJAX( 비동기적으로 데이터를 서버에서 받아오고 처리할 수 있음) 도입
2008 Google Chrome just in time compilation 엔진이 포함된 브라우저 (자바스크립트 실행하는 속도가 빠름)
브라우저들이 다시 표준안을 만들어보자함
2009 ECMA Script5 출시
2015 ECMA Script6 출시 (class, arrow function, const, let, default)
|---parsingHTML ---|fetching js|executing js|---parsingHTML ---|
브라우저가 html을 한줄씩 parsing하다가 script 태그가 보이면
html 파일을 parsing 하는 것을 잠시 멈추고, 필요한 js 파일을 다운받아서 실행한 다음에 parsing하는 부분으로 넘어가게 된다.
|------------parsingHTML -----------|fetching js|executing js|
|----parsing HTML--|--blocked------|---parsing HTML----|
|--fetching js|--executing js-|
<head>
<script async src="main.js"></scirpt>
</head>
브라우저가 async 속성 값이 적힌 script를 만나면
html parsing하다가 '병렬로 js 파일을 다운로드 받자!'라고 명령해놓고 다시 parsing을 한다.
js에 다운로드가 완료되면 그 때 parsing하는 것을 멈추고 다운로드된 js 파일을 실행하게 된다. 그리고 나서 html을 다시 parsing한다.
장점:
단점:
|-----parsing HTML----|----executin js---|
|-fetching js-|
<head>
<script defer scr="main.js"></script>
</head>
parsing을 하다가 script defer를 만나면 js를 다운로드 받자 명령을 해놓고 나머지 html을 끝까지 parsing하고
마지막에 parsing이 끝난 다음에 js을 실행 시켜준다.