首頁 > web前端 > js教程 > 如何在 JavaScript 中讀取 Cookie:哪種解決方案最高效且跨瀏覽器相容?

如何在 JavaScript 中讀取 Cookie:哪種解決方案最高效且跨瀏覽器相容?

Patricia Arquette
發布: 2024-11-08 03:17:02
原創
193 人瀏覽過

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

在JavaScript 中讀取Cookie:高效且跨瀏覽器相容的解決方案

使用獨立JavaScript 腳本時,優化程式碼至關重要尺寸和可靠性。一個常見的任務是讀取cookie,這可以使用多種方法來實現。然而,找到最短、最有效的解決方案可能具有挑戰性。

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;
}
登入後複製
jQuery.cookie 使用更簡潔的方法,也有效率:

最佳化方案:getCookieValue()函數

const getCookieValue = (name) => (
  document.cookie.match('(^|;)\s*' + name + '\s*=\s*([^;]+)')?.pop() || ''
)
登入後複製
但是,還有一個更短、更可靠、更有效率的解決方案:

此函數利用正規表達式來提取與所提供的cookie 名稱關聯的值。它比以前的方法更快、更簡潔,如基準測試所示:

https://jsben.ch/AhMN6

方法註釋

這種正規表示式方法不僅實現了最短的功能,還解決了document.cookie 字串中潛在的不一致問題。官方 RFC 2109 顯示分號後面的空格是可選的,這種方法解釋了這一點。它還處理等號前後的空格,確保解析 cookie 值的可靠性。

以上是如何在 JavaScript 中讀取 Cookie:哪種解決方案最高效且跨瀏覽器相容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板