You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: html5.md
+154Lines changed: 154 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -16,3 +16,157 @@ coords: latitude(위도), logitude(경도), altitude(고도- GPS가 아니면
16
16
timestamp: 위치 정보를 가져온 시간
17
17
18
18
- 위치 정보를 가져오는데 실패했을 때 호출되는 함수에도 매개변수가 넘어가는데 이 경우에는 에러 객체가 전달되고 code 속성을 확인하면 실패한 이유를 알 수 있습니다.
19
+
20
+
> location.html
21
+
22
+
### 4) 위치 정보를 계속 가져와서 사용하기
23
+
- let 변수 = navaigetor.geolocation.watchPosition(위치 정보를 가져오는데 성공했을 때 호출되는 함수, 위치 정보를 가져오는데 실패했을 때 호출되는 함수, 옵션)로 위치 정보를 계속해서 파악하고 clearWatch(변수)를 호출하면 더 이상 위치 정보를 가져오지 않습니다.
24
+
25
+
### 5) 옵션
26
+
- 객체 형태로 대입
27
+
```javascript
28
+
{
29
+
enableHighAccuracy //정확도가 높은 위치 정보를 사용하도록 하는 옵션인데 기본값은 false
30
+
time
31
+
}
32
+
```
33
+
34
+
### 6) 웹화면에 현재 위치에 해당하는 카카오 맵을 이용
35
+
> kakaomap.html
36
+
> https://apis.map.kakao.com/web/guide/
37
+
> Kako Open API: https://developers.kakao.com/
38
+
data.go.kr
39
+
- 애플리케이션 생성하고 javascript 키 복사: f2e17aeed3c1967e0b52038107786813
40
+
키는 바로 사용이 불가능- 플랫폼을 등록해야 한다.
41
+
네이티브 앱은 앱의 패키지 이름을 등록해야 휍의 경우는 도메인을 등록해야 합니다.
42
+
연습할 때는 웹으 경우는 http://localhost:포트번호 형태로 등록하고 실제 서비스에 사용을 할 때는 localhost:포트번호 대신에 등록한 도메인이나 실 사용이 가능한 공인 IP 형태로 변경을 해야합니다.
43
+
44
+
## 2. File API
45
+
- File을 읽고 쓰기 위한 API
46
+
- input 타입의 file에 multiple 속성이 추가되서 이 속성의 값을 설정하면 여러 개의 파일을 선택하는 것이 가능
47
+
- 텍스트 파일을 읽을 때는 인코딩 설정에 주의해야 합니다.
48
+
- 일반 파일을 읽을 때는 FileReader 객체를 생성한 후 reader.readAdDataURL(파일 객체)를 호출하고 load 이벤트와 error 이벤트를 처리합니다.
49
+
***load***는 전부 읽었을 때 FileReader 객체의 result에 읽은 내용을 저장하고 ***error*** 이벤트는 읽기에 실패했을 때 실패한 이유를 저장하고 있는 객체를 넘겨줍니다.
50
+
<br/><br/>
51
+
- 이미지 미리보기
52
+
>imagepreview.html
53
+
54
+
## 3. Drag And Drop API
55
+
- 브라우저 내에서 사용할 수도 있고 외부 프로그램과 브라우저 사이에서도 사용할 수 있음
56
+
외부 프로그램과 사용할 때는 외부 프로그램에서 드래그를 하고 브라우저에 드랍을 해야합니다.
57
+
파일을 첨부할 때 많이
58
+
59
+
## 4. 브라우저에 데이터를 저장
60
+
### 1) 브라우저에 데이터를 저장하는 이유
61
+
- 불필요한 트래픽을 줄이기 위해서
62
+
메일 앱의 경우 매번 서버에 접속해서 서버의 데이터를 받아노는 것은 자원의 낭비가 될 수 있습니다.
63
+
맨 처음 접속을 할 때는 데이터를 다운로드 받고(파일의 존재 여부를 확인) 다음 부터는 마지막 업테이트 된 시간을 비교해서 양쪽의 시간이 다르면 데이터가 수정된 것이므로 다운로드를 받고 양쪽의 시간이 같다면 업데이트 된 내용이 없으므로 다운로드를 받지 않도록 구현
64
+
<br/><br/>
65
+
- offline 상태에서도 데이터를 사용할 수 있도록 하기 위해서
66
+
67
+
### 2) 브라우저에 데이터를 저장하는 방법
68
+
- Web Storage: Map의 형태로 저장
69
+
- Web SQL: 관계형 데이터베이서(SQLites3- 외부에서는 접속이 불가능한 저용량 데이터베이스, 사용법은 MySQL과 유사) 이용
70
+
- Indexed DB: 자바스크립트 객체 형태로 저장- NoSQL과 유사
71
+
72
+
<br/>
73
+
- 기존에는 Cookie를 사용했는데 Cookie 사용하게 되면 문자열만 저장할 수 있고 서버에게 매 번 전송됩니다.
74
+
전송 여부를 클라이언트가 결정할 수 없습니다.
75
+
76
+
### 3) Web Storage
77
+
=> 종류는 2가지
78
+
LocalStorage: 브라우저에 저장해서 지우지 않는한 절대 삭제가 되지 않는 저장소
79
+
<br/>
80
+
SessionStorage: 현재 접속 중인 브라우저에 해당하는 저장소 접속이 종료되면 소멸
81
+
82
+
- 데이터 저장과 가져오기 그리고 삭제
83
+
저장
84
+
스토리지.키 이름= 데이터
85
+
스토리지.["키이름"]=데이터
86
+
스토리지.setItem("키이름",데이터);
87
+
가져오기
88
+
스토리지.키 이름
89
+
스토리지.["키이름"]
90
+
스토리지.getItem("키이름")
91
+
삭제
92
+
delete 스토리지.키 이름
93
+
delete 스토리지.["키이름"]
94
+
스토리지.removeItem("키이름")
95
+
96
+
- 저장소에 데이터가 변경되면 window 객체에 storage 이벤트가 발생하고 이벤트 객체에는 key, oldValue, newValue, url, storageArea 같은 속성이 만들어집이다.
97
+
98
+
- Local Storage는 전역 변수 localStorage로 사용할 수 있고 Session Storage는 sessionStorage로 사용할 수 있습니다.
99
+
100
+
- 저장된 내용을 확인하는 방법은 브라우저의 검사 창에서 application을 확인하면 됩니다.
101
+
102
+
- 세션 스토리지 - 브라우저를 종료했을 때 내용이 소멸되는지와 현재 창에서 새창을 출력했을 때 내용이 복제가 되는지 확인
103
+
> sessionstorage.html
104
+
105
+
- 로컬 스토리지 - id 저장을 구현하는데 브라우저를 종료하고 다시 연결했을 때 내용이 존재하는지 여부를 확인
106
+
> localstorage.html
107
+
108
+
- 로컬 스토리지는 보안이 중요하지 않은 많지 않은 양의 데이터를 저장하는데 용이
109
+
장바구니 구현이나 아이디 저장에 유용하게 사용할 수 있습니다.
110
+
111
+
- 동일한 패턴의 데이터가 많은 경우는 로컬 스토리지 보다는 Web SQL이나 Indexed DB를 권장
112
+
113
+
## 5. Web Worker
114
+
>webworker.html
115
+
>worker.js
116
+
- javascript를 이용한 백그라운드 처리(스레드)
117
+
- Javascript에서는 Thread 표현 대신에 Worker라는 표현을 사용
118
+
- HTML과 함꼐 있는 Javascript 코드에서 긴 작업을 수행하게 되면 작업이 끝날때까지 다른 작업을 수행할 수 없음(UI는 아무것도 할 수 없는 상태)
119
+
- Web Worker는 UI 변경을 하지 못하고 DOM 객체 제어를 할 수 없지만 localStorage와 XMLHttpRequest(ajax) 사용은 가능
120
+
- Web Worker 생성
121
+
let 변수= new Worker("자바스크립트 파일 경로"); // 워커는 별도의 스크립트 파일에 만들어야 함
0 commit comments