컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - js에서 document.cookie 설정이 만료되는 문제에 대해

js에서 document.cookie 설정이 만료되는 문제에 대해

VaScript는 클라이언트 측에서 실행되는 스크립트이므로 Session이 서버 측에서 실행되기 때문에 일반적으로 Session 설정이 불가능합니다.

그리고 쿠키는 클라이언트에서 실행되므로 JS를 사용하여 쿠키를 설정할 수 있습니다.

특정 사용 사례 프로세스에서 페이지 A가 페이지 B로 이동하는 상황이 있다고 가정해 보겠습니다. , A 페이지에서 temp 변수를 사용하여 특정 변수의 값을 저장하는 데 JS를 사용하는 경우 B 페이지에서는 temp의 변수 값을 참조하기 위해 JS를 사용해야 합니다. JS는 제한적이므로 페이지 점프가 발생하거나 페이지가 닫히면 이러한 변수의 값이 다시 로드됩니다. 즉, 저장 효과를 얻을 수 없습니다. 이 문제에 대한 가장 좋은 해결책은 쿠키를 사용하여 변수 값을 저장하는 것입니다. 그러면 쿠키를 설정하고 읽는 방법은 무엇입니까?

우선 쿠키의 구조를 조금 이해해야 합니다. 간단히 말하면 쿠키는 키-값 쌍의 형태, 즉 키=값 형식으로 저장됩니다. 각 쿠키는 일반적으로 ";"로 구분됩니다.

JS가 쿠키를 설정합니다.

페이지 A에서 변수 username("jack")의 값을 쿠키에 저장하려고 하며 키 값은 name이고, 해당 JS 코드는 다음과 같습니다.

다음과 같이 코드를 복사합니다.

document.cookie="name=" 사용자 이름;

JS는 쿠키를 읽습니다.

p>

쿠키에 저장된 콘텐츠는 다음과 같습니다: name=jack; 비밀번호=123

B페이지에서 변수 username 값을 가져오는 JS 코드는 다음과 같습니다.

var username=document.cookie.split (";")[0].split("=")[1]; //JS 작업 쿠키 메서드! //쿠키 작성 function setCookie(name, value){var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() 일*24*60*60*1000); document.cookie = name "=" escape (value) "; 만료=" exp.toGMTString ();}

쿠키 읽기

function getCookie(name){var arr, reg=new RegExp("(^| )" name "=([^;]*) (;|$)"); if (arr=document.cookie.match(reg))return unescape(arr[2]); elsereturn null;}

쿠키 삭제 함수 delCookie(name){var exp = new Date(); exp.setTime(exp.getTime() - 1);var cval=getCookie(name);if(cval!=null)document.cookie= name "=" cval ";expires=" .toGMTString();}//예제 setCookie("name", "hayden"); Alert(getCookie("name")); // 사용자 정의 만료 시간을 설정해야 하는 경우 // 그런 다음 위의 setCookie 함수를 바꿉니다. 다음 두 함수 사용; //프로그램 코드 function setCookie(name, value, time){var strsec = getsec(time); var exp = new Date(); document.cookie = name "= " escape (value) "; 만료=" exp.toGMTString();} function getsec(str){alert(str); var str1=str.substring(1, str.length)*1 ; var str2=str.substring (0,1); if (str2=="s"){return str1*1000;}else if (str2=="h"){return str1*60*60*1000;} 그렇지 않으면 (str2=="d

"){return str1*24*60*60*1000;}} //만료 시간 설정의 예입니다. //s20은 20초를 나타냅니다. //h는 시간을 나타냅니다(예: 12시간): h12 // d는 일수입니다(30일인 경우): d30setCookie("name", "hayden", "s20");

上篇: AC-AC 주파수 변환의 작동 원리는 무엇입니까? 下篇: 더 나은 Giant 자전거를 구입하는 데 비용이 얼마나 드나요?
관련 내용