Heim >Web-Frontend >js-Tutorial >So lesen Sie Cookies in JavaScript: Welche Lösung ist am effizientesten und browserübergreifend kompatibel?

So lesen Sie Cookies in JavaScript: Welche Lösung ist am effizientesten und browserübergreifend kompatibel?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-08 03:17:02192Durchsuche

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

Lesen von Cookies in JavaScript: Effiziente und browserübergreifende kompatible Lösung

Bei der Arbeit mit eigenständigen JavaScript-Skripten ist es entscheidend, den Code zu optimieren für Größe und Zuverlässigkeit. Eine häufige Aufgabe ist das Auslesen von Cookies, was mit verschiedenen Methoden erreicht werden kann. Es kann jedoch eine Herausforderung sein, die kürzeste und effizienteste Lösung zu finden.

die readCookie()-Funktion von quirksmode.org

Die readCookie()-Methode von QuirksMode.org ist eine beliebte Wahl weist jedoch Einschränkungen in Bezug auf Größe und Ästhetik auf.

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;
}

Funktion read_cookie() von jQuery.cookie

jQuery.cookie verwendet eine prägnantere Methode, die auch effizient ist :

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

Optimierte Lösung: Funktion getCookieValue()

Es ist jedoch eine kürzere, zuverlässigere und leistungsfähigere Lösung verfügbar:

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

Diese Funktion verwendet einen regulären Ausdruck, um den mit dem angegebenen Cookie-Namen verknüpften Wert zu extrahieren. Es ist schneller und prägnanter als frühere Methoden, wie Benchmarks zeigen:

https://jsben.ch/AhMN6

Hinweise zur Vorgehensweise

Diese Regex-Methode erreicht nicht nur die kürzeste Funktion, sondern behebt auch potenzielle Inkonsistenzen in der Zeichenfolge document.cookie. Der offizielle RFC 2109 gibt an, dass Leerzeichen nach dem Semikolon optional sind, und dieser Ansatz trägt dem Rechnung. Es verarbeitet auch Leerzeichen vor und nach dem Gleichheitszeichen und gewährleistet so die Zuverlässigkeit beim Parsen von Cookie-Werten.

Das obige ist der detaillierte Inhalt vonSo lesen Sie Cookies in JavaScript: Welche Lösung ist am effizientesten und browserübergreifend kompatibel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn