>웹 프론트엔드 >JS 튜토리얼 >JavaScript에서 쿠키를 읽는 방법: 가장 효율적이고 브라우저 간 호환이 가능한 솔루션은 무엇입니까?

JavaScript에서 쿠키를 읽는 방법: 가장 효율적이고 브라우저 간 호환이 가능한 솔루션은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-08 03:17:02187검색

How to Read Cookies in JavaScript: Which Solution is the Most Efficient and Cross-Browser Compatible?

JavaScript에서 쿠키 읽기: 효율적이고 브라우저 간 호환 가능한 솔루션

독립 실행형 JavaScript 스크립트로 작업할 때 코드를 최적화하는 것이 중요합니다. 크기와 신뢰성을 위해. 일반적인 작업은 쿠키를 읽는 것이며, 이는 다양한 방법을 사용하여 수행할 수 있습니다. 그러나 가장 짧고 효율적인 솔루션을 찾는 것은 어려울 수 있습니다.

quirksmode.org의 readCookie() 함수

QuirksMode.org readCookie() 메서드가 인기 있는 선택입니다. 그러나 크기와 미적 측면에서 제한이 있습니다.

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

jQuery.cookie의 read_cookie() 함수

jQuery.cookie는 더 간결하면서도 효율적인 방법을 사용합니다. :

function read_cookie(key)
{
    var result;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? (result[1]) : null;
}

최적화된 솔루션: getCookieValue() 함수

그러나 더 짧고 안정적이며 성능이 뛰어난 솔루션을 사용할 수 있습니다.

const getCookieValue = (name) => (
  document.cookie.match('(^|;)\s*' + name + '\s*=\s*([^;]+)')?.pop() || ''
)

이 함수는 정규 표현식을 활용하여 제공된 쿠키 이름과 관련된 값을 추출합니다. 벤치마크에서 볼 수 있듯이 이전 방법보다 빠르고 간결합니다.

https://jsben.ch/AhMN6

접근 방법에 대한 참고 사항

이 정규식 방법은 가장 짧은 기능을 달성할 뿐만 아니라 document.cookie 문자열의 잠재적인 불일치도 해결합니다. 공식 RFC 2109에서는 세미콜론 뒤의 공백이 선택 사항임을 나타내며 이 접근 방식이 이를 설명합니다. 또한 등호 앞뒤의 공백을 처리하여 쿠키 값 구문 분석의 신뢰성을 보장합니다.

위 내용은 JavaScript에서 쿠키를 읽는 방법: 가장 효율적이고 브라우저 간 호환이 가능한 솔루션은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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