window.onload 대
window.onload
이벤트와 태그 의 onload
이벤트의 차이점은 정확히 무엇입니까 body
? 언제 어떤 것을 어떻게 사용해야합니까?
window.onload = myOnloadFunc
그리고 <body onload="myOnloadFunc();">
사용하는 다른 방법입니다 같은 이벤트 . 사용 window.onload
은 덜 눈에 띄지 않습니다-HTML에서 JavaScript를 가져옵니다.
모든 일반적인 JavaScript 라이브러리 인 Prototype, ExtJS, Dojo, JQuery, YUI 등은 문서가로드 될 때 발생하는 이벤트에 대한 멋진 래퍼를 제공합니다. 윈도우 onLoad 이벤트를 수신하고 이에 반응 할 수 있지만 모든 리소스가 다운로드 될 때까지 onLoad가 시작되지 않으므로 마지막 큰 이미지가 페치 될 때까지 이벤트 핸들러가 실행되지 않습니다. 어떤 경우에는 정확히 원하는 것입니다. 다른 경우에는 DOM이 준비되었을 때 청취하는 것이 더 적절하다는 것을 알 수 있습니다.이 이벤트는 onLoad와 비슷하지만 이미지 등을 다운로드하지 않고 발생합니다.
차이는 없지만 둘 다 사용해서는 안됩니다.
많은 브라우저에서 window.onload
모든 이미지가로드 될 때까지 이벤트가 트리거되지 않습니다. 원하는 것은 아닙니다. 표준 기반 브라우저에는 이벤트 DOMContentLoaded
가 일찍 발생하지만 IE에서 지원하지 않습니다 (이 답변을 작성할 당시). 크로스 브라우저 DOMContentLoaded 기능을 지원하는 Javascript 라이브러리를 사용하거나 사용 가능한 잘 작성된 함수를 찾는 것이 좋습니다. jQuery 's $(document).ready()
가 좋은 예입니다.
window.onload
몸없이 일할 수 있습니다. 스크립트 태그 만있는 페이지를 작성하여 브라우저에서여십시오. 페이지에 본문이 없지만 여전히 작동합니다 ..
<script>
function testSp()
{
alert("hit");
}
window.onload=testSp;
</script>
일반적으로 > 이벤트를 사용 하지 않는 것이 좋습니다 <body onload=""
. 가능한 한 행동을 콘텐츠와 분리하는 것이 더 깨끗하다고 생각합니다.
즉, 바디 온로드를 사용하면 약간의 속도가 향상되는 경우가 있습니다 (보통 나에게는 매우 드 rare니다).
나는 일반적으로 <head
내 페이지 의 >에 다음과 같은 것을 넣도록 프로토 타입을 사용하고 싶다 .
document.observe("dom:loaded", function(){
alert('The DOM is loaded!');
});
또는
Event.observe(window, 'load', function(){
alert('Window onload');
});
위는 내가 여기서 배운 속임수 입니다. HTML 외부의 첨부 이벤트 핸들러 개념을 매우 좋아합니다.
(코드의 철자 실수를 수정하도록 편집하십시오.)
'객관적인 질문에 대한 너무 많은 주관적인 답변. "명백하지 않은"JavaScript는 gotos를 사용하지 않는 기존 규칙과 같은 미신입니다. 누군가의 트렌디 한 종교적 신념에 따르지 않고 목표를 안정적으로 달성하는 데 도움이되는 방식으로 코드를 작성하십시오.
다음을 발견 한 사람 :
<body onload="body_onload();">
지나치게 산만 해지는 것은 지나치게 소박하며 우선 순위가 정해져 있지 않습니다.
일반적으로 JavaScript 코드를 별도의 .js 파일에 넣었지만 HTML에서 이벤트 핸들러를 연결하는 것은 번거롭지 않습니다.
window.onload
-모든 DOM, JS 파일, 이미지, Iframe, 확장 및 기타가 완전히로드 된 후 호출됩니다. $ (window) .load (function () {})와 같습니다.
body onload=""
-DOM이로드되면 호출됩니다. $ (document) .ready (function () {})와 같습니다.
차이 가 없습니다 ...
원칙적으로 두 가지를 모두 사용할 수 있습니다 (한 번에 하나씩!-)
그러나 가독성을 높이고 html 코드의 청결을 위해 항상 window.onload를 선호합니다! o]
눈에 거슬리지 않는 JS 코드를 작성하려는 경우 (사용해야 함)을 사용하지 않아야합니다 <body onload="">
.
다른 브라우저는이 두 가지를 약간 다르게 처리하지만 비슷하게 작동한다는 것을 이해합니다. 대부분의 브라우저에서 두 가지를 모두 정의하면 하나가 무시됩니다.
다른 속성과 마찬가지로 onload를 생각하십시오. 예를 들어 입력 상자에 다음을 넣을 수 있습니다.
<input id="test1" value="something"/>
또는 당신은 전화 할 수 있습니다 :
document.getElementById('test1').value = "somethingelse";
onload 속성은 value 속성과 같은 문자열 대신 값으로 함수를 취하는 것을 제외하고는 동일한 방식으로 작동합니다. window.onload를 호출하면 body 태그의 onload 속성 값이 다시 할당됩니다.
또한, 여기에있는 다른 사람들처럼, 일반적으로 스타일과 자바 스크립트를 페이지의 내용과 분리하는 것이 더 깨끗합니다. 따라서 대부분의 사람들은 window.onload 또는 jQuery의 ready 함수를 사용하는 것이 좋습니다.
<body onload = "">은 window.onload를 대체해야합니다.
<body onload = "">를 사용하면 document.body.onload가 null이거나 정의되지 않았거나 브라우저에 따라 함수가 될 수 있습니다 (그러나 getAttribute ( "onload")는 익명 함수의 본문을 문자열로 가져 오는 데 다소 일관성이 있어야 함) . window.onload를 사용하면 함수를 할당하면 window.onload는 여러 브라우저에서 일관되게 함수가됩니다. 그게 중요하다면 window.onload를 사용하십시오.
어쨌든 콘텐츠에서 JS를 분리하는 데 window.onload가 더 좋습니다. window.onload를 사용할 수있을 때 <body onload = "">을 사용할 이유가별로 없습니다.
Opera에서, window.onload 및 <body onload = ""> (그리고 심지어 window.addEventListener ( "load", func, false))의 이벤트 대상은 Safari 및 Firefox에서와 같은 문서 대신 창이됩니다. 그러나 '이것은 브라우저 전체의 창입니다.
이것이 의미하는 바는 중요 할 때 크루 드를 감싸서 일관되게 만들거나 라이브러리를 사용해야한다는 것입니다.
둘 다 동일하게 작동합니다. 그러나 둘 다 정의 된 경우 둘 중 하나만 호출됩니다. 나는 일반적으로 그들 중 하나를 직접 사용하는 것을 피합니다. 대신 이벤트 핸들러를로드 이벤트에 첨부 할 수 있습니다. 이렇게하면 onload 이벤트에 콜백을 첨부해야하는 다른 JS 패키지를 더 쉽게 통합 할 수 있습니다.
모든 JS 프레임 워크에는 이벤트 핸들러를위한 브라우저 간 메소드가 있습니다.
내용, 레이아웃 및 동작을 분리하는 것이 허용되는 표준입니다. 따라서 window.onload ()는 <body onload="">
둘 다 동일한 작업을 수행하는 것보다 사용하기에 더 적합합니다 .
참고 URL : https://stackoverflow.com/questions/191157/window-onload-vs-body-onload
'Programing' 카테고리의 다른 글
다국어 데이터베이스의 스키마 (0) | 2020.04.23 |
---|---|
classpath 디렉토리에서 자원 목록 가져 오기 (0) | 2020.04.23 |
C ++로 바이너리 파일 작성하기 (0) | 2020.04.23 |
의미 = 함수 선언 후 삭제 (0) | 2020.04.23 |
express.Router와 app.get의 차이점은 무엇입니까? (0) | 2020.04.23 |