Membaca Kuki dalam JavaScript: Penyelesaian Serasi Cekap dan Merentas Pelayar
Apabila bekerja dengan skrip JavaScript yang berdiri sendiri, adalah penting untuk mengoptimumkan kod untuk saiz dan kebolehpercayaan. Tugas biasa ialah membaca kuki, yang boleh dicapai menggunakan pelbagai kaedah. Walau bagaimanapun, mencari penyelesaian terpendek dan paling berkesan boleh menjadi mencabar.
Fungsi readCookie() quirksmode.org
Kaedah QuirksMode.org readCookie() ialah pilihan popular tetapi mempunyai had dari segi saiz dan estetika.
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; }
Fungsi read_cookie() jQuery.cookie
jQuery.cookie menggunakan kaedah yang lebih ringkas dan juga cekap :
function read_cookie(key) { var result; return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? (result[1]) : null; }
Penyelesaian Dioptimumkan: Fungsi getCookieValue()
Walau bagaimanapun, penyelesaian yang lebih pendek, lebih dipercayai dan lebih berprestasi tersedia:
const getCookieValue = (name) => ( document.cookie.match('(^|;)\s*' + name + '\s*=\s*([^;]+)')?.pop() || '' )
Fungsi ini menggunakan ungkapan biasa untuk mengekstrak nilai yang dikaitkan dengan nama kuki yang disediakan. Ia lebih pantas dan lebih ringkas daripada kaedah sebelumnya, seperti yang ditunjukkan dalam penanda aras:
https://jsben.ch/AhMN6
Nota tentang Pendekatan
Kaedah regex ini bukan sahaja mencapai fungsi terpendek tetapi juga menangani kemungkinan ketidakkonsistenan dalam rentetan document.cookie. RFC 2109 rasmi menunjukkan bahawa ruang putih selepas koma bertitik adalah pilihan, dan pendekatan ini menyumbang untuk itu. Ia juga mengendalikan ruang kosong sebelum dan selepas tanda sama, memastikan kebolehpercayaan dalam menghurai nilai kuki.
Atas ialah kandungan terperinci Cara Membaca Kuki dalam JavaScript: Penyelesaian Manakah yang Paling Cekap dan Serasi Merentas Pelayar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!