Rumah > Artikel > hujung hadapan web > Siasat batasan dan perangkap SessionStorage
Analisis pengehadan dan kelemahan SessionStorage
SessionStorage ialah mekanisme untuk menyimpan data pada bahagian klien Ia menyediakan cara untuk menyimpan pasangan nilai kunci dalam sesi penyemak imbas yang sama. Setiap item yang disimpan dikaitkan dengan tetingkap atau tab penyemak imbas dan berterusan untuk tempoh sesi tersebut. Walaupun SessionStorage menyediakan beberapa kemudahan dalam beberapa aspek, ia juga mempunyai beberapa had dan kelemahan Artikel ini akan membincangkan isu ini satu demi satu dan memberikan contoh kod khusus.
Salah satu had utama SessionStorage ialah kapasiti data. Pelayar yang berbeza mempunyai sekatan yang berbeza pada kapasiti storan maksimum SessionStorage, biasanya antara 5MB dan 10MB. Apabila data yang disimpan melebihi had ini, ralat "QuotaExceededError" akan dicetuskan. Berikut ialah kod sampel yang menunjukkan cara menggunakan SessionStorage untuk menyimpan jumlah data yang lebih besar:
// 生成一个1MB大小的字符串 const largeData = "a".repeat(1024 * 1024); try { sessionStorage.setItem("largeData", largeData); } catch (error) { if (error.name === "QuotaExceededError") { console.log("存储容量已满"); } else { console.log("存储失败"); } }
SessionStorage mengasingkan data mengikut dasar asal yang sama. Dasar asal yang sama menghendaki akses SessionStorage hanya boleh dilakukan antara halaman asal yang sama, iaitu protokol, nama domain dan port mestilah betul-betul sama. Ini bermakna jika halaman yang berbeza adalah daripada domain atau subdomain yang berbeza, mereka tidak akan dapat mengakses SessionStorage masing-masing. Contoh berikut menunjukkan ketidakupayaan untuk mengakses SessionStorage antara domain yang berbeza:
Halaman di bawah domain www.example.com:
sessionStorage.setItem("key", "value");
Halaman di bawah domain subdomain.example.com:
const value = sessionStorage.getItem("key"); console.log(value); // 输出null
// 存储数据 sessionStorage.setItem("name", "John"); // 关闭浏览器窗口或标签页 // 重新打开网站 const name = sessionStorage.getItem("name"); console.log(name); // 输出null
Atas ialah kandungan terperinci Siasat batasan dan perangkap SessionStorage. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!