Perkembangan aplikasi web telah menyebabkan peningkatan penggunaan penyimpanan sisi klien, dan ada berbagai cara untuk mengimplementasikan penyimpanan sisi klien. Solusi paling sederhana dan paling kompatibel adalah Cookie, tetapi sebagai penyimpanan sisi klien yang sebenarnya, Cookie memiliki banyak kelemahan fatal. Selain itu, UserData Behavior juga dapat digunakan di IE6 ke atas, globalStorage dapat digunakan di Firefox, dan Flash Local Storage dapat digunakan di lingkungan dengan plug-in Flash. Namun, semua metode ini memiliki batasan kompatibilitas, jadi sebenarnya Tidak ideal untuk digunakan. Menanggapi situasi di atas, HTML5 memberikan solusi yang lebih ideal: jika Anda perlu menyimpan data yang kompleks, Anda dapat menggunakan Web Database , dan Anda dapat menggunakan SQL seperti program klien (tetapi standar Web Database saat ini menemui jalan buntu, dan saat ini Browser yang telah diterapkan sangat terbatas); jika Anda perlu menyimpan data yang dapat diselesaikan hanya dengan pasangan kunci/nilai, Anda dapat menggunakan Penyimpanan Web . Artikel ini terutama memperkenalkan situasi spesifik Penyimpanan Web dari berbagai aspek.
sessionStorage dan penyimpanan lokal
Penyimpanan Web sebenarnya terdiri dari dua bagian: sessionStorage dan localStorage.
sessionStorage digunakan untuk menyimpan data secara lokal dalam suatu sesi. Data ini hanya dapat diakses oleh halaman dalam sesi yang sama dan data dimusnahkan ketika sesi berakhir. Oleh karena itu sessionStorage bukan penyimpanan lokal persisten, hanya penyimpanan tingkat sesi.
localStorage digunakan untuk penyimpanan lokal persisten. Kecuali jika data dihapus secara aktif, data tidak akan pernah kedaluwarsa.
Mengapa memilih Penyimpanan Web dibandingkan Cookie?
Dibandingkan dengan Cookies, Web Storage memiliki banyak keunggulan, yang dirangkum sebagai berikut:
1. Ruang penyimpanan lebih besar: Setiap ruang penyimpanan independen di IE8 adalah 10M. Implementasi browser lain sedikit berbeda, tetapi jauh lebih besar daripada Cookie.
2. Konten yang disimpan tidak akan dikirim ke server: Ketika cookie disetel, konten cookie akan dikirim ke server bersama dengan permintaan, yang merupakan pemborosan bandwidth untuk data yang disimpan secara lokal. Data di Penyimpanan Web hanya ada secara lokal dan tidak berinteraksi dengan server dengan cara apa pun.
3. Antarmuka yang lebih kaya dan mudah digunakan: Penyimpanan Web menyediakan serangkaian antarmuka yang lebih kaya, membuat pengoperasian data menjadi lebih mudah.
4. Ruang penyimpanan independen: Setiap domain (termasuk subdomain) memiliki ruang penyimpanan independen. Setiap ruang penyimpanan sepenuhnya independen, sehingga tidak akan ada kebingungan data.
Bagaimana kompatibilitasnya?
Berbagai pengujian berikut dilakukan pada browser berikut: IE8, Firefox3.6, Chrome5, Safari4, Opera10 Ternyata implementasi API di setiap browser pada dasarnya sama, dan terdapat masalah kompatibilitas tertentu, namun sebenarnya tidak mempengaruhi penggunaan normal.
tes penyimpanan sesi
Bagian ini terutama menguji beberapa fitur sessionStorage. Fokus pengujian adalah pada definisi sesi oleh setiap browser dan situasi lintas domain. Metode pengujiannya sangat sederhana: buka halaman A , tulis data sesi saat ini di halaman A, lalu gunakan metode berbeda untuk masuk ke halaman B melalui link atau tombol di halaman A. Jika halaman B dapat mengakses data di halaman A Artinya bahwa browser menganggap halaman A dan B saat ini sebagai sesi yang sama. Hasil spesifik dari tes tersebut ditunjukkan pada Tabel 1:
Tabel 1 uji kompatibilitas sesi Penyimpanan
Seperti terlihat pada Tabel 1, demi alasan keamanan, data sesi tidak diperbolehkan diakses lintas domain di semua browser, termasuk lintas subdomain. Di aspek lain, penerapan di browser mainstream relatif konsisten.