>웹 프론트엔드 >JS 튜토리얼 >상태 비저장 HTTP 환경에서 페이지 로드 전반에 걸쳐 변수를 어떻게 유지할 수 있습니까?

상태 비저장 HTTP 환경에서 페이지 로드 전반에 걸쳐 변수를 어떻게 유지할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-24 09:39:13397검색

How Can I Persist Variables Across Page Loads in a Stateless HTTP Environment?

페이지 로드 간 변수 유지

HTTP는 상태 비저장이므로 페이지를 다시 로드할 때 값을 유지하려면 외부 저장소가 필요합니다. 이 제한을 극복하는 방법은 다음과 같습니다.

쿼리 문자열

GET을 통해 양식을 제출할 때 쿼리 문자열(?parameter=value)은 양식 필드 데이터를 전달합니다. 그에 따라 숨겨진 필드의 값을 설정합니다.

<form method="GET">
    <input type="hidden" name="clicked" value="true" />
    <input type="submit" />
</form>

페이지 로드 시 쿼리 매개변수를 추출합니다.

function getParameterByName(name) {
    var regex = new RegExp("[\?&amp;]" + name + "=([^&amp;#]*)"),
        results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

var clicked = getParameterByName('clicked');

웹 저장소

HTML5는 다음을 제공합니다. 웹 스토리지: 브라우저 기반 데이터 저장이 가능합니다. SessionStorage는 현재 탐색 세션 동안에만 데이터를 저장합니다.

sessionStorage.setItem('clicked', 'true');

페이지 로드 시 저장된 값 검색:

var clicked = sessionStorage.getItem('clicked');

쿠키

쿠키는 주로 서버측 데이터 저장에 사용되지만 클라이언트측 저장에도 활용될 수 있습니다. jQuery는 쿠키 관리를 단순화합니다.

$.cookie('clicked', 'true', {expires: 1}); // expires in 1 day

페이지 로드 시 쿠키를 읽으려면:

var clicked = $.cookie('clicked');

더 이상 필요하지 않은 경우 쿠키 설정을 취소해야 합니다.

$.cookie('clicked', null);

Window.name

권장하지는 않지만, window.name은 페이지 새로 고침 및 도메인 전반에 걸쳐 문자열을 저장할 수 있습니다.

window.name = "my value";

페이지 로드 시 저장된 값에 액세스합니다.

var value = window.name;

위 내용은 상태 비저장 HTTP 환경에서 페이지 로드 전반에 걸쳐 변수를 어떻게 유지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.