http://www.tcpschool.com/javascript/intro
이사이트 맨첨에는 헤드쪽에 이렇게 써놔서 아 헤드쪽에 써놓는구나 하고 강의 쭉보는데
강의에서는 전부다 바디안에다가 스크립트 써놨는데
뭐가맞는거임?
지금 펑션으로해서 alert 이거는 위에 헤드에 스크립트로 해도 문제없었는데
dom이거는 헤드쪽에하면 아예 안되고 바디쪽에하니까 되네
http://www.tcpschool.com/javascript/intro
이사이트 맨첨에는 헤드쪽에 이렇게 써놔서 아 헤드쪽에 써놓는구나 하고 강의 쭉보는데
강의에서는 전부다 바디안에다가 스크립트 써놨는데
뭐가맞는거임?
지금 펑션으로해서 alert 이거는 위에 헤드에 스크립트로 해도 문제없었는데
dom이거는 헤드쪽에하면 아예 안되고 바디쪽에하니까 되네
dom 변형하는 스크립트들는 바디 가장 밑에 놔야 dom들이 로딩된 다음에 실행됨.
아무데나 쓰셈
맨 마지막에 쓰는게 에러 잘 안남
헤드에 쓰면 에러나는게있고 안나는게 있는데 마지막에쓰면 에러 안남? 그러면 그냥 무조건 아래쓰는게 좋은거?
전문가가 아니라서 잘 모르겠는데 위에다가 스크립트 넣어서 엘레먼트가 없다는 에러날때 아래에다가 스크립트 옮겨서 오류 안난 적 있어서 이런 경우에는 아래에 쓰면 좋지
보통 바디 맨 아래에 넣고 헤드에 넣을려면 defer 라는 프로퍼티 삽입해야됨. 그래야 돔 로딩 후에 스크립트 실행됨
헤드에 쓰면 에러나는게있고 안나는게 있는데 마지막에쓰면 에러 안남? 그러면 그냥 무조건 아래쓰는게 좋은거?
헤드/바디 배치 문제는 reference undefined 에러 같은거 날텐데 맞음?? 에러에 따라 대처해야 할게 달라서..
아 그러면 헤드에 써야되는게 따로있고 바디에 써야되는게 따로있는거죠?
Jquery 같은 외부 라이브러리 소스 같은건 헤드에, 외부 파일이라도 bundle 어쩌구 있는건 바디 맨 아래 넣는 경우가 많은듯함. 돔을 조작하는 자작 파일이면 맨 아래 or 헤드에 넣고 defer 프로퍼티 입력해야되고. 근데 외부 소스 같은 경우에는 어디에 넣으라고 따로 안내가 되어 있을테니 그걸 우선 참조하면 됨
위에 넣고 defer 프로퍼티 넣어주는게 좋지 다운로드는 미리 받아놓고 나중에 실행하는건데
Html읽는동안 js받으려면 위에 놓는거고 html렌더링하기도 전에 js 실행되면 곤란하니까 defer 프로퍼티 붙이는거임