Cookie Exercise

From. headfirst javascript
florakid_lib/javascript/cookies 페이지와 비교해 보세요.

쿠키 저장 함수

							function writeCookie (name, value, days) {
								// 쿠키는 일시적이므로 default로 소멸일자는 없는 것으로 설정
								var expires = "";

								// 쿠키가 지속되는 날짜 수를 지정
								if (days) {
									var date = new Date();
									date.setTime(date.setTime() + (days*24*60*60*1000)); // days*24시간*60분*60초*밀리세컨
								}

								// 쿠키에 이름, 값, 소멸 일자를 설정.
								document.cookie = name + "=" + value +expires + "; path=/";
							} //END writeCookie()							
						


쿠키 읽기 함수

							function readCookie (name) {
								// 특정 쿠키를 찾아 그 값을 반환
								var searchName = name + "=";
								var cookies = document.cookie.split(';'); // ';'로 구별되는 쿠키 리스트를 배열로 만듬;
								for (var i=0; i<cookies.length; i++) {
									var c = cookies[i];
									while (c.charAt(0) == ' ') {
										c = c.substring(1, c.length);
									}
									if (c.indexOf(searchName) == 0) {
										return c.substring(searchName.length, c.length);
									}
								}
								return null;
							} //END readCookie()							
						


쿠키 삭제 함수

							function eraseCookie (name) {
								// 특정 쿠키를 삭제
								writeCookie(name, "", -1); // 값을 할당하지 않고 소멸일자(-1일)로 소멸시켜 쿠키를 삭제.
							} //END eraseCookie()					
						


쿠키 사용가능 여부 체크하기

							if (navigator.cookieEnabled) {
								alert("Cookie has no problems!");
							}else {
								alert("Cookie cannot be used!!");
							}		
						

보안에 관련된 걱정이든, 제한된 브라이저든 간에, 일부는 쿠키를 사용할 수 없을 수도 있습니다. 이런 경우 쿠키를 사용할 수 없을 경우에 대비해서, 쿠키사용가능 여부를 체크해야 합니다. 다행히 브라우저에는 쿠키가 사용 가능한지를 체크할 수 있는 하나의 Boolean 프로퍼티를 가지고 있습니다. 바로 cookieEnabled란 프로퍼티인데, 이는 navigator 객체의 일부로서 브라우저 자체에 대한 정보를 자바스크립트에 제공합니다.

							if (navigator.cookieEnabled) {
								writeCookie("name", "test", 5);
							}else {
								alert("Cookie cannot be used!!");
							}		
						

쿠키와 관련된 상기의 자바스크립트 소스는 외부 파일로 따로 빼서, 임포트 시켜서 사용하는 것이 편리합니다.

							<script type="text/javascript" src="cookie.js"></script>