본문 바로가기

컴퓨터 프로그래밍/JQuery

web storage

web storage 기본

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function(){
	//저장
	$('#saveBtn').click(function(){
		if(!window.localStorage){
			//모든 브라우저가 HTML5 로컬스토리지 지원해서 이 구문은 안 써도 됨.
			alert("현재 브라우저는 로컬스토리지를 지원하지 않습니다");
			return false;
	}
	//로컬스토리지 저장하는 3가지 방법. 다 같은 방법.
	localStorage.setItem("key1", "안녕"); //함수 이용. key-value
	localStorage.key2 = "HI";
	localStorage["key3"] = "HELLO";
	});
	
	//삭제
	$('#deleteBtn').click(function(){
		localStorage.removeItem("key1"); //키만 입력하면 됨
	});
	
	//전체삭제
	$('#deleteAllBtn').click(function(){
		localStorage.clear();
		//localStorage에 있는 모든 내용을 삭제... 주의해서 사용!
	});
	
	//내용보기
	$('#showBtn').click(function(){
		alert(localStorage.getItem("key1")+","+localStorage.getItem("key2")+","+localStorage.getItem("key3"));
	});
});
</script>
</head>
<body>
<button id="saveBtn">저장</button>
<button id="deleteBtn">삭제</button>
<button id="deleteAllBtn">전체삭제</button>
<button id="showBtn">내용보기</button>
</body>
</html>

 

javaScript로 구현된 것

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>web Storage</title>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
	var key,val,entries;
	$(document).ready(function(){
		showAll();//저장된 로컬스토리지 값을 불러오기
		$('#save').click(function(){
			save();
		});
		$('#remove').click(function(){
			remove();
		});
		$('#entries').change(function(){
			entrySelect();
		});
		$('#new_win').click(function(){
			window.open(location.href);
		});
	});
	
	function showAll(){
		key=document.getElementById("k");
		val=document.getElementById("v");
		entries=document.getElementById("entries");
		
		//스토리지에 변경이; 있으면 목록을 다시 표시,showAll() 메소드를 이벤트 리소스에 등록
		window.addEventListener("storage",showAll,false);
		entries.innerHTML="";//이전 항목들을 모두 삭제
		for(var i=0; i<localStorage.length; i++){
			var k=localStorage.key(i);
			entries.options[entries.options.length]=new Option(k+":"+localStorage[k],k);//마지막 k가 value값이 되고 그 전에 있는 것들이 option사이의 값들이 된다
		}
		
	}
	function save(){
		localStorage[key.value]=val.value; //value1.value
		document.getElementById("k").value="";
		document.getElementById("v").value="";
		showAll();
	}
	//이걸 젤로 나중에...키 얻어서 삭제를 할거니깐..
	function remove(){
		//localStorage.removeItem(key.value);//선택한 항목을 로컬 스토리지에서 삭제
		delete localStorage[key.value]; //이렇게 해도 된다
		document.getElementById("k").value="";
		document.getElementById("v").value="";
		showAll();
	}
	function entrySelect(){
		var selectedOption=entries.options[entries.selectedIndex];
		key.value=selectedOption.value;//키값
		val.value=localStorage[key.value];
	}

</script>
</head>
<body>
<h1>로컬 스토리지  뷰어</h1>
키 : <input type="text" id="k"><br>
값 : <input type="text" id="v"><br><br>
<button id="save">저장</button>
<button id="remove">삭제</button>
<button id="new_win">윈도우 생성</button>
<hr>
<select id="entries" size="5"></select>
</body>
</html>

 

JQuery로 구현

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>web Storage</title>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
	var key,val,entries;
	$(document).ready(function(){
		showAll();//저장된 로컬스토리지 값을 불러오기
		$('#save').click(function(){
			var kval = $('#k').val();
			var vval = $('#v').val();
			localStorage.setItem(kval, vval);
			$('#k').val("");
			$('#v').val("");
			showAll();
		});
		
		$('#remove').click(function(){
			var kval = $('#k').val();
			localStorage.removeItem(kval);
			$('#k').val("");
			$('#v').val("");
			showAll();
		});
		
		$('#entries').change(function(){
			var str = $(this).val(); // key1 : hello
			$('#k').val(str);			
		});		
	});	
	
	function showAll(){
	/* 	key=document.getElementById("k");
		val=document.getElementById("v"); */
		entries=document.getElementById("entries");
				
		entries.innerHTML="";//이전 항목들을 모두 삭제
		for(var i=0; i<localStorage.length; i++){
			var k=localStorage.key(i);
			entries.options[entries.options.length]=new Option(k+":"+localStorage[k],k);//마지막 k가 value값이 되고 그 전에 있는 것들이 option사이의 값들이 된다
		}		
	}

</script>
</head>
<body>
<h1>로컬 스토리지  뷰어</h1>
키 : <input type="text" id="k"><br>
값 : <input type="text" id="v"><br><br>
<button id="save">저장</button>
<button id="remove">삭제</button>
<hr>
<select id="entries" size="5"></select>
</body>
</html>