在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中文網其他相關文章!