본문 바로가기

『IT/개발』/HTML

HTML 작성 시 Javascript 선언 위치때문에 겪은일.

 

 

HTML 작성 시 js는 <body> 태그 내 가장 아래 부분에 위치 시키는 것이라고 알고 있었죠.

물론 맞는 말입니다.

js의 경우 눈에 보여지는 것이 아니기 때문에 HTML 태그가 다 로드된 후에 읽어 들이는 것이 맞겠죠.

그것이 웹페이지의 속도를 높일 수 있는 방법이기도 하구요.

그렇기 때문에 눈에 보여지는 CSS의 경우 <head> 태그 내에 위치 시켜서 HTML 태그들을 조정? 변형? 여튼 시키는 거죠.ㅎㅎ

 

하지만! 역시나 무조건 적인 것은 없었습니다.

최근에 있었던 일입니다.

간단한 CRM 페이지 구현을 할 일이 있어서 jQuery EasyUI 를 사용하게 되었습니다.

이전 까지는 계속해서 ExtJS 를 사용하다가 좀 무겁기도 하고 새로운 것을 사용하고 싶어서 jQuery EasyUI 를 선택하게 된거죠.

구현하는 내내 페이지의 로딩 속도가 그닥 빠르게 느껴지지 않았습니다.

ExtJS 보다 가벼운거 아니였나? ㅎㅎㅎ

여튼 로컬이니까 그렇겠지?? 라고 그냥 넘겨버렸습니다.

그리고 마침내 서버에 적용하고 난 다음... 멘붕...

왜 느리지???왜??? 도저히 이해가 가지 않았어요.

 

참고로 jQUery EasyUI 는 이름 그대로 보다 쉽게 편리한 UI를 구현할 수 있는 그런 스크립트입니다.

 

느린 현상을 말로 표현하자면 간단합니다.

페이지에 내가 HTML 태그로 작성한 엘리먼트들이 나타나고(jQuery EasyUI 적용이 되지 않은) 1초에서 2초 후에 jQuery EasyUI 프레임워크가 적용 된 화면으로 바뀌는 것입니다.

 

머지머지???라고 외치며 계속되는 구글링...

침착하게 jQuery EasyUI 사이트를 다시 방문해서 천천히 둘러보았습니다.

여기 저기 Demo Sample 소스들을 살펴보는 도중 발견한 공통점 하나!

그건 바로 js 파일들을 모두 <head> 태그 안에서 호출을 하는 것이였습니다.

설마 저건가? 하고 제 소스에도 적용을 해보았죠.

설마가 정답이였습니다.

처음 보여지는 현상이 사라지고 정상적으로 EasyUI 가 적용된 페이지가 처음부터 로드 되더군요.

 

결론적으로

페이지의 로딩 속도 차이는 머라고 말 할 그런게 아니였습니다.

그냥 EasyUI 가 적용되기 전 HTML 태그들이 잠시 보이는냐 아니면 EasyUI 가 적용된 태그들이 처음부터 보이느냐의 차이였던 거죠.

js 의 경우 보통 <body> 태그 하단에 위치시키는 것이 맞습니다.

하지만 jQuery EasyUI 와 같이 HTML 태그들의 UI를 변경시키는 js 의 경우에는 <head> 태그 내에 위치 시키는 것이 좋습니다.

 

저와 같은 문제를 겪으신 분이 계시다면 참고하시길...