일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- github lfs
- nextjs
- html
- dvh
- Can't resolve
- Recoil
- animation
- react-native
- github 100mb
- Git
- device in use
- camera permission
- custom printing
- vercel git lfs
- camera access
- react-native-dotenv
- augmentedDevice
- npm package
- ELECTRON
- silent printing
- Each child in a list should have a unique "key" prop.
- ffi-napi
- electron-packager
- rolldown
- 티스토리 성능
- adb pair
- adb connect
- github pdf
- Failed to compiled
- 이미지 데이터 타입
- Today
- Total
Bleeding edge
문서와 리소스의 로딩 본문
HTML의 Document는,
1. DOMContenLoaded
2. load
3. beforeunload
4. unload
이렇게 네가지의 이벤트로 리소스 로딩 언로딩의 시점에 이벤트를 컨트롤 할 수있습니다.
DOMContentLoaded
1. DOMContentLoaded는 document 객체를 기준으로 발생하기 때문에, addEventListener을 사용해야합니다.
2. script안에 있는 스크립트가 모두 처리된 후에 발생합니다.
2 - 1 2에대한 예외로, async 속성이 있는 스크립트는 DOMContentLoaded의 '모두 처리'의 대상에 포함이 안되기 때문에, async가 실행이 안되더라도 DOMContentLoaded는 발생할 수 있습니다.
load
window 객체의 load가 끝난후 실행된다.
1. DOMContentLoaded vs load
//1번케이스
document.addEventListener('DOMContentLoaded', alert('dom'))
window.onload = function() { alert('window'); };
//2번케이스
window.onload = function() { alert('window'); };
document.addEventListener('DOMContentLoaded', alert('dom'))
1번케이스와 2번케이스 나오는 순서와 상관없이, DOMContentLoaded가 먼저나온다. 이유는 load는 외부자원과 이미지가 모두 끝났을때이지만, DOMContentLoaded는 DDOM의 로드만 끝나면 시작하기 때문이다.
beforeunload
window.onbeforeunload = function() {
return "저장되지 않은 변경사항이 있습니다. 정말 페이지를 떠나실 건 가요?";
};
위의 예시는, https://ko.javascript.info/onload-ondomcontentloaded가 출저이다.
위의 예시를 사용해서 알 수 있는것은,
1. F5 새로고침을 누르면, return된 값이 YES, OR NO로 선택하게 창으로 뜬다.
2. 하지만, 다른 사이트로 이동하거나 창을 껏을때는 아무런 창이 안나온다
beforeunload 응용 케이스
window.addEventListener('beforeunload', () => {
localStorage.setItem('name', 'value');
});
버튼을 누를때마다 로컬스토레이지에 저장하는 것보다, 이렇게, 페이지를 떠날때만 저장하는 것이 효율적이다.
unload
사용자가 브라우저 창을 닫거나, 페이지를 언로드(페이지 이동이라던지) 할 때 발생. beforeunload와의 차이라면, 아무래도 이동 전에 막기위한거라면 beforeunload, 이동하고나서라면 unload다의 차이이다.
'Javascript' 카테고리의 다른 글
2차원 Array 만들기. (0) | 2022.05.02 |
---|---|
fetch 와 import의 경로 (0) | 2022.04.28 |
Javascript - debounce, throttle (0) | 2022.04.08 |
Javascript - Event bubbling, Event Capturing (0) | 2022.04.08 |
Javascript - Promise (0) | 2022.04.07 |