페이지가 완전히로드되기 전에 DOM을 사용하여 작업 할 수있는 JavaScript 프레임 워크가 많이 있습니다. html 또는 body 태그가 사용자 에이전트에 JavaScript 지원 여부를 결정하는 방식으로 조작되는 경우가 종종 있습니다.ondomready JavaScript 지원에 대한 대체 솔루션
예를 들어 html 태그의 클래스는 'no-js'이고 DOM이 준비되면 해당 클래스 이름이 'js'로 업데이트되므로 프런트 엔드 개발자는 페이지의 스타일을 지정할 수 있습니다. 두 가지 방법 - 하나는 자바 스크립트를 지원하고 다른 하나는 자바 스크립트가 지원되지 않을 때 데이터를 올바르게 표시하는 방식입니다.
이 기능은 정상적으로 작동하지만 항상 약간의 지연이 있으며 업데이트 된 클래스 이름 지정 기능이 ('no-js'에서 'js'로) 실행될 때 화면이 자주 표시됩니다. JS 지원 버전의 사이트에 다르게 스타일이 적용되었습니다.
이것은 항상 저를 괴롭 히며, 페이지에 많은 JavaScript 기반 상호 작용이 있으면 실제로보기 흉하게 보일 수 있습니다.
간단히 말해서, 나의 의도는 ondomready 이벤트보다 더 빨리 수행 할 수있는 해결책을 찾는 것이 었습니다. 내가 생각해 낸 해결책은 오프닝 본문 태그 바로 뒤에 다음 문을 실행하는 것이 었습니다.
<script type="text/javascript">//<![CDATA[
var elBody = document.getElementsByTagName('body')[0];
elBody.className = elBody.className.replace(new RegExp('no-js\\b'), 'js');//]]></script>
이 방법이 효과가있는 것으로 보입니다. 더 이상 화면이 뛰지 않습니다. 이것은 좋은 접근 방법입니까? 내가 모르고있는 모든 죄수?