2015년 7월 23일 목요일

HTML5 Intermediate 4일

* 팝업창에서 부모 창을 나타내는 객체: window.opener
- 부모 창에서 iframe 윈도우 객체: iframeTag.contentWindow
- 부모 창에서 팝업창 윈도우 객체: 
--> window.open(URL, name, features, replace)의 리턴값이 팝업창의 윈도우 객체임.
- 각 윈도우 객체의 postMessage()로 해당 윈도우에게 메시지를 보낼 수 있음.

* Cross Domain
- 보낼 window의 핸들을 얻을 수 있는 경우에만 가능

* Web Worker
- worker thread는 웹 페이지에서 발생하는 이벤트를 받거나 직접 핸들링 할 수 없음.
- worker thread에는 window 객체가 없음 --> UI 작업에 제한이 따름.
- 메인 쓰레드에서 사용자 인터페이스 및 UI 작업을 하고 오래 걸리는 작업 등을 worker thread로 처리.

* BOM : Browser Object Model. 자바스크립에서 브라우저를 핸들링하기 위하여 제공되는 객체의 모델.
- window: 다음의 브라우저 관련 객체를 제공
-- document
-- location
-- history
-- navigator
-- screen

* Main 스레드 <--> Worker 쓰레드 간 통신: Cross-Domain의 API와 동일하게 사용할 수 있음.
- postMessage() 할 때 객체 자체를 보낼 수 있음. 어짜피 같은 브라우저에서 실행되는 것이므로 가능.

* 일반 함수에서 this는 window 객체임. Worker용 JavaScript 파일에서 this는 Worker임.

* Worker 스레드에서 사용할 수 있는 window 객체
- XMLHttpRequest
- create other web workers --> 권장하지 않음.
- applicationCache : offline web cache 기능 제공 객체. 서버와의 데이터 동기화 작업을 수행함.
- navigator : 브라우저 자체의 정보 제공 객체. Worker에서는 geolocation 정보는 가져올 수 없음.
- location : 브라우저의 주소창. 이를 이용하여 URL 정보 등을 알 수 있음. Worker에서는 페이지 전환을 시킬 수 없음.
- setTimeout method
- clearTimeout method
- setInterval method
- clearInterval method
- importScripts method : importScripts('경로명', '파일명', '경로명', '파일명', ....)

* GET 방식에서 파라미터에 한글을 지원하려면
- Tomcat 서버의 server.xml 파일에서 <Connector> 부분에 URIEncoding 방식을 추가해야 함.
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />

* Web Cache
- window.applicationCache 존재 여부로 지원 여부를 알 수 있음.
- Manifest 파일을 생성: Cache할 정보를 담고 있음.
- <html manifest='notes.manifest'> 와 같이 지정하면 notes.manifest를 브라우저가 받아 옴.
- Web Cache되는 컨텐츠는 동일 서버에 있는 것만 가능함.
- 외부 리소스를 참조하는 경우라면 로컬 서버에 가져다가 놓아야 함.
- manifest 파일은 다음과 같아야 함.
CACHE MANIFEST <-- 꼭 이 문장으로 시작
# v = 1.0.0 <-- 버전 정보. 이 값이 바뀜에 따라 캐싱이 다시 이루어짐.
./style.css <-- 여기부터 캐시할 리소드들을 쭉 나래비 함.
./notes.js
- <html manifest='notes.manifest'> 가 등록된 HTML 파일 당연히 캐시됨으로 위에 명시할 필요 없음. 명시해도 됨.
- 개발자 도구 다음에서 확인 가능.
- window.applicationCache의 update()를 호출해야 변경 내용을 새로 받음.
- Web Cache을 이용할 때는 업데이트 가능한 상태로 컨텐츠를 배포해야 함. 중요!!!
- Offline에서 Online이 되는 순간 업데이트 되도록 할 수 있음. navigator 객체 이용. navigator.onLine로 Online 여부를 확인할 수 있음.
- window.addEventListener('online', onlineHandler); 이용하여 Online으로 바뀌었는지 여부 확인 가능


저작자: Yes, 상업적 이용: No, 컨텐츠 변경: No

댓글 없음:

댓글 쓰기