Επιστροφή στο blog

Εργαλεία JavaScript: localStorage και sessionStorage

Εργαλεία JavaScript: localStorage και sessionStorage

JavaScript (συχνά συντομογραφείται ως JS) είναι ένα από τα θεμέλια της σύγχρονης υποδομής του ιστού. Είναι μια ελαφριά, διερμηνευόμενη, αντικειμενοστρεφής γλώσσα προγραμματισμού που υποστηρίζει συναρτήσεις πρώτης κατηγορίας. Η JavaScript είναι κυρίως γνωστή για την εφαρμογή της σε δυναμικές ιστοσελίδες. Λόγω των χαρακτηριστικών της, ωστόσο, η JavaScript χρησιμοποιείται επίσης σε περιβάλλοντα εκτός προγράμματος περιήγησης.

Σε αυτόν τον οδηγό, θα συζητήσουμε λεπτομερώς δύο αντικείμενα JavaScript: localStorage και sessionStorage.

Επισκόπηση των localStorage και sessionStorage

Τα αντικείμενα localStorage και sessionStorage προσφέρονται ως μέρος του web storage API. Είναι ένα εξαιρετικό εργαλείο για την τοπική αποθήκευση ζευγών κλειδιού-τιμής. Η χρήση των localStorage και sessionStorage είναι μια εξαιρετική εναλλακτική λύση στα cookies. Αυτή η προσέγγιση προσφέρει ορισμένα επιπλέον οφέλη:

  • Τα δεδομένα αποθηκεύονται τοπικά και δεν μπορούν να διαβαστούν από τον διακομιστή. Αυτό εξαλείφει τα προβλήματα ασφάλειας με τα cookies.
  • Επιτρέπει μεγαλύτερη χωρητικότητα αποθήκευσης (έως 10 MB για τα περισσότερα σύγχρονα προγράμματα περιήγησης).
  • Απλή και ξεκάθαρη σύνταξη.

Αυτά τα αντικείμενα υποστηρίζονται σε όλα τα σύγχρονα προγράμματα περιήγησης ιστού, επομένως δεν θα υπάρχει πρόβλημα συμβατότητας προγράμματος περιήγησης. Τα cookies εξακολουθούν να είναι χρήσιμα σε πολλές περιπτώσεις, για παράδειγμα, στην ταυτοποίηση. Ωστόσο, υπάρχουν περιπτώσεις όπου τα localStorage και sessionStorage προσφέρουν καλύτερες λύσεις.

Προαπαιτούμενα

Για να εκτελέσετε τα βήματα που παρουσιάζονται σε αυτό το σεμινάριο, θα χρειαστείτε τα ακόλουθα στοιχεία:

Για επίδειξη, πήραμε μια δείγμα ιστοσελίδας που συνοδεύεται από ένα σενάριο JS. Μπορείτε να μάθετε περισσότερα σχετικά με την προσθήκη JavaScript σε ένα αρχείο HTML εδώ:

tree_struct

VS 1

Όσον αφορά τον επεξεργαστή κειμένου, θα χρησιμοποιήσουμε το Visual Studio Code:

Web 1

Ποια είναι η διαφορά μεταξύ localStorage και sessionStorage;

Και τα δύο localStorage και sessionStorage προέρχονται από το ίδιο API. Οι συμπεριφορές τους είναι επίσης πανομοιότυπες. Η μόνη διαφορά είναι στον τρόπο με τον οποίο κάθε αντικείμενο επιτρέπει τη διατήρηση των δεδομένων. Στην περίπτωση του sessionStorage, τα δεδομένα διατηρούνται μέχρι να κλείσει το παράθυρο ή η καρτέλα. Με το localStorage, τα δεδομένα διατηρούνται μέχρι να εκκαθαριστεί η προσωρινή μνήμη του προγράμματος περιήγησης ή να τα εκκαθαρίσει η ίδια η διαδικτυακή εφαρμογή.

Σε αυτό το σεμινάριο, θα εστιάσουμε κυρίως στο localStorage. Ωστόσο, η σύνταξη για το sessionStorage είναι η ίδια. Θα δείξουμε πώς να δημιουργείτε, να διαβάζετε και να ενημερώνετε ζεύγη κλειδιού/τιμής χρησιμοποιώντας το localStorage.

Βήμα 1 – Δημιουργία καταχωρίσεων

Μπορούμε να δηλώσουμε μια καταχώριση στο αντικείμενο localStorage χρησιμοποιώντας τη μέθοδο setItem(). Αυτή η μέθοδος δέχεται δύο ορίσματα: το κλειδί και την αντίστοιχη τιμή του. Η δομή της μεθόδου είναι η εξής:

Στο ακόλουθο παράδειγμα, δημιουργήσαμε μια μεταβλητή key. Χρησιμοποιώντας τη μέθοδο setItem(), ορίσαμε ένα νέο key και ορίσαμε την τιμή του σε value:

VS 2

Βήμα 2 – Ανάγνωση καταχωρίσεων

Τώρα, πώς διαβάζουμε την τιμή που είναι αποθηκευμένη στο κλειδί; Για να πάρουμε ένα κλειδί από το localStorage, θα χρησιμοποιήσουμε τη μέθοδο getItem(). Δέχεται το όνομα του κλειδιού και επιστρέφει τις τιμές που είναι αποθηκευμένες σε αυτό. Θα χρησιμοποιήσουμε τη μέθοδο alert() για να εμφανίσουμε το περιεχόμενο που ανακτούμε:

VS 3

Στη συνέχεια, ανοίξτε την ιστοσελίδα σε ένα πρόγραμμα περιήγησης ιστού. Θα πρέπει να δείξει την τιμή που είναι αποθηκευμένη στο key:

Web 2

Βήμα 3 – Ενημέρωση καταχωρίσεων

Μόλις οριστεί μια τιμή, θα παραμείνει έτσι εκτός αν αλλάξει. Αν χρησιμοποιήσουμε τη μέθοδο setItem() στο ίδιο key ξανά, θα αντικαταστήσει αυτόματα την παλιά τιμή με τη νέα.

Στο ακόλουθο παράδειγμα, το key αρχικά αρχικοποιείται με την τιμή value. Στην επόμενη γραμμή, καλέσαμε τη μέθοδο setItem() άλλη μια φορά και ορίσαμε την τιμή σε new value:

VS 4

Ας δούμε τι συμβαίνει όταν εκτελούμε αυτόν τον κώδικα στο πρόγραμμα περιήγησης:

Web 3

Όπως μπορούμε να δούμε, η τιμή του κλειδιού έχει οριστεί σε νέα τιμή.

Βήμα 4 – Διαγραφή καταχωρίσεων

Αν υπάρχουν πολλαπλές καταχωρίσεις στο localStorage (και sessionStorage επίσης) που δεν είναι πλέον απαραίτητες, συνιστάται να τις καθαρίσετε στη συνέχεια. Αυτό ελευθερώνει περισσότερο χώρο για μελλοντική χρήση. Η εφαρμογή γίνεται επίσης πιο αποδοτική ως προς τη μνήμη.

Για να διαγράψετε μια καταχώριση από το localStorage, υπάρχει μια αποκλειστική μέθοδος removeItem(). Παίρνει το key ως όρισμα και το αφαιρεί από το localStorage σύνολο δεδομένων:

Ας το υλοποιήσουμε στο script μας:

VS 5

Όταν εκτελείται, το αποτέλεσμα λέει null επειδή δεν υπάρχει τιμή για το key:

Web 4

Βήμα 5 – Καθαρισμός καταχωρίσεων

Στο προηγούμενο παράδειγμα, αφαιρέσαμε μόνο ένα κλειδί. Ωστόσο, το localStorage επιτρέπει την εκκαθάριση όλων των στοιχείων που είναι αποθηκευμένα σε ένα μόνο βήμα. Για να καθαρίσετε όλες τις καταχωρίσεις, το localStorage προσφέρει τη μέθοδο clear(). Δεν δέχεται κανένα όρισμα:

Θέστε τη μέθοδο σε λειτουργία:

VS 6

Όπως και πριν, αφαιρεί όλες τις καταχωρίσεις από το localStorage, οπότε όταν προσπαθείτε να αποκτήσετε πρόσβαση στην τιμή του key , επιστρέφει null:

Web 5

Βήμα 6 – Εργασία με JSON

  • Αποθήκευση αντικειμένων και πινάκων

Τα αντικείμενα localStorage και sessionStorage μπορούν να αποθηκεύσουν μόνο τιμές συμβολοσειράς. Ωστόσο, θα υπάρξουν φορές που θα πρέπει να εργαστείτε με αντικείμενα ή πίνακες. Σε αυτή την περίπτωση, πρέπει να τα μετατρέψουμε σε συμβολοσειρά.

Η JavaScript διαθέτει τη δυνατότητα JSON.stringify() που θα πάρει τον πίνακα/αντικείμενο και θα τον μετατρέψει σε συμβολοσειρές. Αυτή η ανάρτηση παρέχει μια σύντομη επισκόπηση της μορφής JSON. Για έναν πιο αναλυτικό οδηγό, μπορείτε να διαβάσετε το JSON στη JavaScript.

Σε αυτό το παράδειγμα, δημιουργήσαμε ένα αντικείμενο sampleObj με δύο πεδία name και location. Θα το μετατρέψουμε σε συμβολοσειρά και θα το αποθηκεύσουμε στο key:

VS 7

Εδώ, το αποτέλεσμα θα είναι η συμβολοσειρά που περιέχει τα δεδομένα του αντικειμένου:

Web 6

  • Ανάγνωση αντικειμένων και πινάκων

Κατά την αποθήκευση, μετατρέψαμε τα αντικείμενα και τους πίνακες σε συμβολοσειρές. Μπορούμε να πάρουμε αυτή τη συμβολοσειρά και να τη μετατρέψουμε ξανά στην αρχική της μορφή. Για να το κάνουμε αυτό, θα χρησιμοποιήσουμε τη μέθοδο JSON.parse(). Παίρνει μια συμβολοσειρά και τη μετατρέπει ξανά σε μορφή JSON:

VS 8

Όσον αφορά το αποτέλεσμα, το μετατρέψαμε ξανά σε συμβολοσειρά και το μορφοποιήσαμε για καλύτερη εμφάνιση:

Web 7

Βήμα 7 – Έλεγχος για στοιχείο στο localStorage

Σε αυτήν την ενότητα, θα παρουσιάσουμε μια απλή δοκιμή για να προσδιορίσουμε εάν το localStorage και το sessionStorage περιέχουν κάποιο στοιχείο ή όχι. Χρησιμοποιώντας μια απλή if δήλωση, μπορούμε να ελέγξουμε το μήκος του localStorage ή του sessionStorage. Αν υπάρχουν στοιχεία, το μήκος θα είναι μεγαλύτερο από 0.

First, implement the following example:

VS 9

Εδώ, το αποτέλεσμα θα είναι true επειδή υπάρχει ένα κλειδί στο localStorage:

Web 8

Βήμα 8 – Επανάληψη σε Στοιχεία

Το αντικείμενο localStorage και sessionStorage αποθηκεύει τα κλειδιά σε μια δομή που μοιάζει με πίνακα. Δεν υποστηρίζουν τη μέθοδο forEach, οπότε θα πρέπει να ακολουθήσουμε την κλασική τεχνική της χρήσης ενός βρόχου for για να επαναλάβουμε τη διαδικασία σε κάθε στοιχείο.

Στο ακόλουθο παράδειγμα, θα ελέγξουμε αν το localStorage είναι κενό ή όχι. Αν δεν είναι κενό, τότε θα επαναλάβουμε τη διαδικασία σε κάθε στοιχείο:

VS 10

Το αποτέλεσμα θα εμφανίσει όλα τα στοιχεία ένα προς ένα:

Web 9

Βήμα 9 – Έλεγχος Υποστήριξης Προγράμματος Περιήγησης

Μπορούμε να ελέγξουμε την υποστήριξη για το localStorage (και το sessionStorage) ελέγχοντας αν είναι διαθέσιμο στο αντικείμενο window. Μια απλή δήλωση if θα κάνει τη δουλειά:

VS 11

Εκτελέστε τον κώδικα στο πρόγραμμα περιήγησης ιστού:

Web 10

Τελικές Σκέψεις

Αυτός ο οδηγός έδειξε πώς να χρησιμοποιείτε τα αντικείμενα localStorage και sessionStorage στη JavaScript για την αποθήκευση ζευγών κλειδιού/τιμής στο πρόγραμμα περιήγησης. Οι συντάξεις είναι πολύ πιο απλές στη χρήση. Παρουσιάσαμε πώς να δημιουργείτε, να αφαιρείτε και να ενημερώνετε ζεύγη κλειδιού/τιμής. Αντιμετωπίσαμε επίσης την αποθήκευση αντικειμένων και πινάκων μετατρέποντάς τα σε συμβολοσειρές (και αντίστροφα).

Για να εμβαθύνετε περισσότερο τις γνώσεις σας στη JavaScript, μπορείτε να δείτε τα ακόλουθα σεμινάρια από το ιστολόγιό μας:

Καλή συνέχεια στον προγραμματισμό!

author

Pranay Kapgate

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.