HTML

[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)

분류 제목
link HTML - <link> 태그 ★ - 외부소스연결 (= link태그 = 링크태그) (HTML5수정) ※ 파비…
list HTML - <ul> 태그 ★ - 객체 ★ - 순서없는리스트 (= 순서없는목록태그 = ul태그 = 유엘태그/…
list HTML - <ol> 태그 ★ - 순서있는리스트 (= 목록태그 = ol태그 = 오엘태그 = 올태그) - (H…
list HTML - <li> 태그 ★ - 리스트목록 (= 리스트아이템 = li태그 = 리태그/리스트태그/엘아이태그…
list HTML - <dir> 태그 - 디렉토리목록 (= dir태그 = 디르태그 = 디렉토리태그) (HTML5제외)
list HTML - <dl> 태그 ★ - 설명리스트 (= 설명목록 = dl태그 = 디엘태그) (HTML5용도변경) …
list HTML - <menu> 태그 - 명령어메뉴목록 (= menu태그 = 메뉴태그)
list HTML - <dt> 태그 ★ - 설명리스트의 설명항목 (= dt태그 = 디티태그) ※ (정의리스트/데이터리…
list HTML - <dd> 태그 ★ - 설명리스트의 설명항목 내용 (= dd태그 = 디디태그) ※ (정의리스트/데…
table HTML - <table> 태그 ★ 테이블 (= 표작성 = table태그 = 테이블태그) ※ 셀병합 (= 셀…
table HTML - <caption> 태그 - 테이블제목 (= 표제목 = caption태그 = 캡션태그) (HTML…
table HTML - <tr> 태그 ★ - 테이블행 (= 테이블가로줄 = tr태그 = 티알태그) (HTML5수정)</…
table HTML - <th> 태그 ★ - 테이블셀제목 (= th태그 = 티에이치태그) + th고정 (= 테이블헤드고…
table HTML - <td> 태그 ★ - 테이블 데이터 셀 (= 테이블셀 = td태그 = 티디태그) (HTML5수정…
table HTML - <thead> 태그 - 테이블머리글그룹 (= thead태그 = 티헤드태그) (HTML5수정)
5/23
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드 3
제작의뢰
Q&A
커뮤니티
웹유틸
회원센터
홈짱 PC버전 로그인