• 회원가입
  • 로그인
  • 구글아이디로 로그인

[programming] HTML - <script> 태그 ★★ - JS코드입력 (= 동적기능언어입력 = script태그 = 스크립트태그)

목차
  1. <script> 예제 - JS코드 입력
  2. <script> 정의
  3. <script> 속성
  4. <script> 위치 - HTML 로드 후, JS 실행 권장

 

<script> 예제 - JS코드 입력


<p id="sinbi"></p>

<script>
document.getElementById("sinbi").innerHTML = "홈짱닷컴 (homzzang.com)";
</script>

의미: HTML 문서에서 sinbi 아이디 찾아, 그 안에 홈짱닷컴 (homzzang.com)이라는 글자 넣어 출력.

<script> 정의

 

클라이언트 브라우저에서 HTML 문서를 보다 동적이면서 상호작용하도록 만들어주는 역할 함.

 


 

1.

<script>는 서버쪽이 아닌 클라이언트쪽 브라우저에서 "자바스크립트" 같은 스크립트 정의할 때 사용.

2.

상단 예제처럼 <script>태그 안에 스크립트 내용을 직접 정의할 수도 있고, 
아래 예제처럼 js 확장자로 저장된 JS외부문서를 src 속성 이용해 호출 가능.
<script language="javascript" src="<?php echo G5_JS_URL."/rainbow.js">

3.

<script> 태그는 주로 이미지 조작,  폼 양식 유효성 검사, 콘텐츠의 동적 변화에 사용.

4.

<script> 태그 안에 src 속성이 존재할 경우, 
script 태그 안엔 javascript 외부 문서를 제외하고 아무 것도 없어야 함.


5. 
JS 지원 않는 클라이언트쪽 브라우저 고려해, 
<noscript> 태그 이용해 별도로 내용 기술 가능.

6. 

외부스크립트가 실행되는 방법 3가지 ★★★
1. async="async" : 페이지의 나머지 문서와 동시에 실행.
2. defer="defer" : 페이지 문서가 모두 뜬 후, 마지막에 실행.
3. 비정의 : 페이지 문서가 뜨기 전에 실행

7.
Type 속성 지정 필수 여부

HTML 4.01 : type 지정 필수
HTML5 : type 지정 선택. async 속성 새로 등장, xml:space 속성이 더 이상 지원 안됨.


8.

HTML과 XHTML에서 사용법 차이 (걍 참고용. 몰라도 됨. ㅡㅡ;;;;)

HTML

<script> 태그 안 스크립트 내용을 CDATA로 선언 (※ CDATA는 entities 의미를 분석하지 않음)

XHTML

<script> 태그 안 스크립트 내용을 #PCDATA로 선언 (※ #PCDATA는 entities 의미를 분석)
이것은 모든 특수문자는 암호화되야 하고 또한 모든 콘텐트는 CDATA 섹션으로 감싸져야 함을 의미.

<script type="text/javascript">
//<![CDATA[
var i = 10;
if (i < 5) {
  // some code
}
//]]>
</script>


9. 

JS 자세한 사용법은 JS 게시판 참고. 

 


<script> 속성

속성
속성값 쓰임새 비고
 async
 async  페이지의 나머지 문서와 동시에 출력. (외부 파일 방식)
 즉, JS 파일 다운 명령만 걸어두고, html 로드 진행함.
 
 charset ISO-8859-1
(라틴 알파벳용)

 UTF-8
 문자셋 (외부 파일 방식)  
 defer
 defer  페이지 문서가 모두 뜬 후, 마지막에 출력.
(외부 파일 방식)
 
 src
 URL 주소  js 확장자로 된 JS 내용 담은 외부 문서 
(외부 파일 방식)
 
 type  text/javascript (기본값)
 text/ecmascript
 application/ecmascript
 application/javascript
 스크립트의 미디어 타입을 지정  
xml:space
 preserve  코드에서 여백이 보존되어야 하는지 여부  HTML5 제외

※ 속성과 속성값이 동일하면 속성값을 따로 안 적어도 됨. 

 

<script> 위치 - HTML 로드 후, JS 실행 권장

방법1 - <head> 안에 <script> 태그 넣는 대신, <script> 태그에 async 속성 추가.

 

JS 파일 다운로드 명령만 실행 후, 계속해서 HTML 요소 로드 진행.

(즉, JS 파일 다운로드와 HTML 로드가 병렬적으로 진행됨.)

※ JS 파일 다운 속도와 HTML 로드 속도가 별 차이 없을 때 사용 권장.

 

장점: 방법2・3보다 JS 실행 속도가 더 빠름.

단점: HTML 로드 완료 전 JS 파일 실행 가능성 존재해, DOM 조작 시 에러 발생 가능.

 


방법2 - <head> 안에 <script> 태그 넣는 대신, <script> 태그에 defer 속성 추가. ★

 

JS 파일 다운로드 명령만 실행 후, 계속해서 HTML 요소 로드 진행.

(즉, JS 파일 다운로드와 HTML 로드가 병렬적으로 진행됨.)

※ JS 파일 다운 속도보다 HTML 로드 속도가 많이 느릴 때 사용 권장.

 

장점: 방법2보다 전체 로드 속도가 더 빠름.

단점: HTML 로드 완료 후 JS 파일 실행하므로, DOM 조작 시 에러 발생 없음.

 


방법3 - <script> 태그를 </body> 태그 앞에 위치. (비권장)

 

HTML 요소 로드 완료 후, 비로소 JS 파일 다운로드가 순차적으로 진행됨.

 

장점: HTML 로드 완료 후 JS 실행하므로 에러 가능성 줄어듦.

단점: 로드 시간이 아주 많이 지연됨.

 

PS. 엘리 님 (async・defer) 강의 https://youtu.be/tJieVCgGzhs

 

PS.

 

JS 강의

https://homzzang.com/b/js

 

mdn script 강의

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script (영어)

https://developer.mozilla.org/ko/docs/Web/HTML/Element/script (한국어)

 


 

방문 감사합니다. (즐겨찾기 등록: Ctrl + D)

분류 제목
style HTML - <aside> 태그 ★ - 관련 별도 콘텐츠 (= aside태그 = 어사이드태그)
style HTML - <details> 태그 - 토글 가능한 세부사항(상세사항)을 표시 (= details태그 = 디…
style HTML - <dialog> 태그 - 대화박스 (= 대화상자 = dialog태그 = 다이알로그태그) (HTM…
style HTML - <summary> 태그 - 세부사항의 머리글 (= summary태그 = 서머리태그 = 써머리태…
programming HTML - <embed> 태그 - 외부동영상재생 (= embed태그 = 엠베드태그, HTML5추가)
intro HTML - 구형브라우저에서 HTML5 사용 (+ HTML요소생성법)
deprecated HTML - <nobr> 태그 - 줄바꿈안하기 (= nobr태그 = 노비알태그)
etc HTML - <tt> 태그 - 텔레타이프 텍스트 (= tt태그 = 티티태그)
attribute HTML - Attribute ★ - 속성종류 (= 전역속성 + 이벤트속성 + 그외속성)
attribute HTML - Global Attribute - 전역속성 종류
attribute HTML - Event Attribute - 이벤트속성종류
api HTML5 - Geolocation - 사용자위치 (= 사용자 지리위치 = 지오로케이션)
api HTML5 - Drag and Drop - 마우스로 끌어서 놓기 (= 드래그앤드롭)
api HTML5 - Web Storage - 웹저장소 (= 웹스토리지) (IE8 이상) ※ 마우스 클릭횟수 점검
api HTML5 - Web Worker - 백그라운드실행JS (= 웹워커)
api HTML5 - Server-Sent Event - 서버전송이벤트 (= 서버센트이벤트)
etc HTML - 키보드 단축키 모음 (Window/Mac)
attribute HTML - lang 속성 ★ - 언어코드 (Language Code) + 국가코드 (Country Code…
etc HTML - 인터넷 (에러/오류) 의미 = (인터넷에러/인터넷오류) 종류 ★★★ + 500 Internal …
intro HTML - HTML5 사용조건 / HTML4.01과 다른점 (= HTML5 vs HTML401 차이점)
7/18
목록
찾아주셔서 감사합니다. Since 2012