script 속성 defer 질문드립니다.
586
작성한 질문수 6
안녕하세요.
<script> 태그를 넣는 위치에 대해 질문드립니다.
<script> 태그를 </body> 바로 위에 넣어야 <body> 태그 안에 있는 html 내용들이 전부 파싱 된 이후에 script 가 실행된다고 하셨는데,
그렇다면 </head> 바로 위에 넣고 나서 script 태그의 속성으로 defer 를 넣으면
<body> 태그 안에 있는 html 내용들이 전부 파싱될때까지 <script> 태그 내용들이 실행을 기다렸다가
<body> 태그 안에 있는 html 내용들이 전부 파싱된 후에 실행된다고 알고 있는데,
defer 속성을 쓰고, </head> 바로 위에 script 태그를 넣으면 안되는걸까요?
2번 방법을 쓰게 된다면 아마 즉시실행함수를 만들어야 하는거 같은데, defer 속성을 쓰게 되면 즉시실행함수를 굳이 만들지 않아도 될것 같은데 defer 속성을 쓰면 안되는건가 해서 궁금해서 질문 드립니다!!
답변 1
0
말씀하신대로 defer 속성을 사용하면 document.ready의 역할을 합니다.
곧, defer 속성을 사용하면 <script> 태그의 defer 속성은 페이지가 모두 로드된 후에 해당 외부 스크립트가 실행됩니다.
그래서 script 위치에 관계 없이 <script src="custom.js" defer="defer"></script> 사용하면 script가 html 보다 위에 있어도 잘 작동합니다. (defer 속성은 불리언 값이라 defer라고만 적어도 됩니다. input 태그의 checked와 같습니다.)

다만 제가 알고 있기로는 위에 처럼 스크립트를 파일로 링크하는 형태는 defer 속성이 작동하지만 스크립트를 html 내에 작성할 때는 작동하지 않습니다.

초보자의 스크립트 사용을 하는 원칙을 중요하게 생각해서 defer라는 속성은 제가 언급을 안했던 것 같습니다.
다른 분들도 보실 수 있으니 좋은 질문이십니다.
class 값 한 번에 부여하는법
2
80
1
@media에서의 flex-direction: column으로 세로배치 관련 질문드립니다.
1
69
1
div#css-checker-widget의 해결방
1
60
2
input의 포커스되었을때 검정선이 사라지지 않아요
0
79
2
강의듣는법
1
75
1
아코디언 만들기 100%이하의 화면으로 보았을때
1
68
2
input checked 질문합니다.
0
77
1
Bracket Pair Colorizer - 비주얼 스튜디오
1
140
2
Part 1 영상 안나옵니다
1
91
1
제이쿼리 작동이 안됩니다
1
200
3
강의 내용 질문있습니다.
1
122
2
일정 부분만 주석하는 방법
1
212
2
폰트어썸
1
134
2
인접선택자에 대한 질문드립니다!
1
129
2
delay 적용 안됨
1
135
1
rotateY(360deg)가 적용이 안됩니다!
1
186
2
세로이동할때 height값
1
139
2
폰트어썸이 안되요..
1
488
2
화면 정중앙에 오게끔 할수있나요?
1
170
1
어코디언 네비게이션 중
1
127
1
라이브서버 문제
1
230
2
넷플릭스 어코디언 예제 질문
1
105
1
이번 강의에선 display flex가 무조건 적으로 필요한건가요 ?
1
158
1
active 관련 질문
1
147
2





