Rumah >hujung hadapan web >html tutorial >Alternatif yang berdaya maju kepada sessionStorage

Alternatif yang berdaya maju kepada sessionStorage

WBOY
WBOYasal
2024-01-13 12:03:19665semak imbas

Alternatif yang berdaya maju kepada sessionStorage

Apakah penyelesaian yang mungkin untuk menggantikan sessionStorage?

sessionStorage ialah mekanisme storan yang disediakan oleh penyemak imbas yang boleh menyimpan data sesi sementara dalam tetingkap atau tab yang sama. Walau bagaimanapun, sessionStorage mempunyai beberapa had Sebagai contoh, data disimpan dalam sesi, data akan dikosongkan selepas menutup tetingkap atau tab dan data tidak boleh dikongsi merentasi tetingkap atau tab. Oleh itu, jika kita memerlukan penyelesaian penyimpanan data yang lebih fleksibel dan global, kita perlu mempertimbangkan alternatif lain.

  1. Gunakan localStorage

localStorage lebih berkuasa daripada sessionStorage, anda boleh berkongsi data antara tetingkap atau tab yang berbeza dan data tidak akan tamat tempoh. Sama seperti sessionStorage, localStorage juga merupakan API yang disediakan oleh penyemak imbas dan boleh digunakan melalui contoh kod berikut:

// Simpan data
localStorage.setItem('key', 'value');

// Dapatkan data
nilai var = localStorage.getItem('key');

//Padam data
localStorage.removeItem('key');

// Kosongkan semua data
localStorage.clear();

  1. Gunakan kuki
Kecuali localStorage, Cookies juga merupakan penyelesaian penyimpanan data biasa. Walaupun kuki mempunyai beberapa had, seperti had bilangan kuki di bawah setiap nama domain dan had saiz kuki, kuki tersebut mempunyai ciri merentas domain dan boleh berkongsi data di bawah nama domain yang berbeza.

// Simpan data dan tulis data ke kuki

document.cookie = 'key=value; expires=Khu, 18 Dis 2023 12:00:00 UTC;

// Dapatkan data daripada kuki Baca data dalam

fungsi getCookie(nama) {

var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
    var cookie = cookies[i].trim();
    if (cookie.substring(0, name.length + 1) === (name + '=')) {
        return decodeURIComponent(cookie.substring(name.length + 1));
    }
}
return '';

}

var value = getCookie('key');

// Padam data dan tetapkan masa tamat tempoh kuki kepada sebelum masa semasa

fungsi deleteCookie(nama) {

document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/';

}

deleteCookie('key');

    Menggunakan IndexedDB
IndexedDB ialah pangkalan data lanjutan yang disediakan oleh penyemak imbas yang boleh menyimpan sejumlah besar data berstruktur dalam penyemak imbas. Tidak seperti localStorage dan kuki, IndexedDB boleh menyimpan objek yang lebih kompleks dan menyokong fungsi seperti transaksi dan indeks. Berikut ialah contoh kod menggunakan IndexedDB:

//Buka pangkalan data

var request = window.indexedDB.open('myDatabase', 1);

request.onupgradeneeded = function(event) {

rreee

};

request.onsuccess = function(event) {

var db = event.target.result;
var objectStore = db.createObjectStore('myObjectStore', { keyPath: 'id' });

};

    Gunakan perpustakaan pihak ketiga
Selain daripada penyelesaian storan asli di atas, terdapat juga beberapa perpustakaan pihak ketiga yang boleh membantu kami menyimpan data lebih banyak dengan mudah, seperti:

    redux: Pustaka JavaScript untuk mengurus keadaan aplikasi, yang boleh menyimpan data dengan mencipta stor global.
  • RxJS: Pustaka untuk mengendalikan aliran data tak segerak, yang boleh digunakan untuk mencipta objek boleh diperhatikan global untuk menyimpan data.
  • MobX: Perpustakaan untuk pengurusan negeri yang boleh menyimpan dan memerhati data dengan mencipta stor global.
Di atas hanyalah beberapa alternatif yang mungkin untuk sessionStorage Penyelesaian khusus untuk dipilih bergantung pada keperluan sebenar dan senario aplikasi.

Atas ialah kandungan terperinci Alternatif yang berdaya maju kepada sessionStorage. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn