나는 악마의 옹호자가되지는 않지만 아마추어 직업과 인라인 JavaScript 사이에는 엄격한 관계가 없습니다. 가장 잘 알려진 여러 웹 사이트의 소스 코드를 보자 :
- 구글,
- 위키 백과,
- 마이크로 소프트,
- 어도비 벽돌,
- 작은 골짜기,
- IBM.
모든 홈 페이지는 인라인 JavaScript를 사용합니다. 모든 회사가 아마추어 사람들을 고용하여 홈페이지를 만들었습니까?
JavaScript 코드를 HTML에 넣을 수없는 개발자 중 한 사람입니다. 나는 내가 작업하는 프로젝트 내에서 결코 그것을 <a href="javascript:...">
하지 않습니다 (처음부터 JavaScript가 필요하지 않은 프로젝트에 대한 호출을 제외하고 다른 사람의 코드를 리팩터링 할 때 항상 인라인 JavaScript를 제거하지만 노력의 가치가 있습니다) 확실하지 않습니다.
성능 측면에서 JavaScript를 별도의 파일에 넣을 때 항상 성능이 향상되는 것은 아닙니다. 일반적으로, 우리는 그것을 캐시 할 수 없기 때문에, 그 인라인 자바 스크립트 폐기물 대역폭을 고려하는 유혹 (정적 캐시 HTML을 처리 할 때를 제외하고). 반대로 extern .js 파일은 한 번만로드됩니다.
실제로 이것은 또 다른 조기 최적화입니다 . JavaScript를 외부화하면 웹 사이트가 빨라질 것이라고 생각할 수도 있지만 완전히 틀릴 수도 있습니다.
- 대부분의 사용자에게 빈 캐시가 있으면 어떻게합니까?
- extern .js 파일을 사용하면 웹 사이트가 올바르게 구성되어 있지 않은 경우 (그리고 일반적으로 그렇지 않은 경우) 모든 페이지 요청 마다이 파일에 대한 요청이 있다고 생각하십니까?
- .js 파일이 실제로 캐시됩니까 (IIS를 사용하면 쉽지 않을 수 있음)?
따라서 조기에 최적화하기 전에 방문자에 대한 통계를 수집하고 인라인 JavaScript가 있거나없는 성능을 평가하십시오.
그리고 마지막 논점은 소스에 JavaScript와 HTML을 혼합 한 것입니다. 하지만 누가 둘 다 섞 었다고 했어요? 브라우저가 사용하는 소스 코드가 항상 작성한 소스 코드는 아닙니다. 예를 들어, 소스 코드, 압축 축소 된, 또는 여러 CSS 나 JS 파일을 하나 개의 파일로 결합 할 수있다, 그러나 이것은 당신이 정말로이라는 것을 의미하지 않는다 할 수있다 당신의 변수 a
, b
, c
... a1
, 등 또는 당신이 쓴 공백이나 줄 바꿈이없는 거대한 CSS 파일. 같은 방법으로 외부 JavaScript 소스 코드를 컴파일 타임 또는 나중에 템플릿을 통해 HTML에 쉽게 삽입 할 수 있습니다.
결론적으로, 작성한 소스 코드에서 JavaScript와 HTML을 혼합하는 경우 향후 프로젝트에서 JavaScript와 HTML을 사용하지 않는 것이 좋습니다. 그러나 브라우저에 전송 된 소스 코드에 인라인 JavaScript가 포함되어 있다고해서 항상 나쁜 것은 아닙니다.
- 나쁠 수 있습니다.
- 그 반대는 웹 사이트가 성능에 관심이 있고 특정 테스트를 수행하고 클라이언트가 JavaScript의 일부를 인라인하는 것이 더 빠르다고 판단한 전문가가 웹 사이트를 작성했다는 표시 일 수 있습니다.
- 또는 전혀 의미가 없습니다.
"매우 멋진 사이트, 소스 코드의 인라인 스크립팅에 대해 부끄러운 일"이라고 말하는 사람에게는 웹 사이트가 어떻게 수행되었는지 전혀 몰라도 브라우저에 전송 된 소스 만보고 부끄러운 일이 있습니다.