Τι είναι το IndexedDB και πότε το χρησιμοποιούν οι ιστοσελίδες;

Το IndexedDB είναι ένα προχωρημένο σύστημα αποθήκευσης του browser για μεγάλα, δομημένα δεδομένα. Δες τι είναι, πώς δουλεύει και πότε χρειάζεται.

Πρόχειρο

Το IndexedDB είναι το ενσωματωμένο σύστημα αποθήκευσης του browser για μεγάλα, δομημένα δεδομένα. Δες τι είναι, πώς δουλεύει και πότε το χρησιμοποιούν οι ιστοσελίδες αντί για την τοπική αποθήκευση ή την αποθήκευση συνεδρίας.

Έχεις χρησιμοποιήσει ποτέ μια web εφαρμογή που συνέχισε να δουλεύει ακόμα και όταν έπεσε το internet σου; Ή μια που ένιωθες ότι είναι τόσο γρήγορη όσο μια εφαρμογή εγκατεστημένη στο κινητό σου, με μεγάλο όγκο δεδομένων να φορτώνει αμέσως; Πίσω από αυτές τις εμπειρίες υπάρχει συνήθως κάτι πολύ πιο ικανό από τα βασικά εργαλεία αποθήκευσης του browser που έχουμε δει μέχρι τώρα. Αυτό το κάτι είναι το IndexedDB.

Το IndexedDB είναι ο πιο ικανός τύπος αποθήκευσης browser που υπάρχει και βρίσκεται ένα επίπεδο πάνω από όσα σχεδιάστηκαν να χειρίζονται η τοπική αποθήκευση και η αποθήκευση συνεδρίας. Οι περισσότεροι ιδιοκτήτες επαγγελματικών ιστοσελίδων δεν θα το αγγίξουν ποτέ απευθείας, αλλά αν το καταλάβεις, έχεις πλήρη εικόνα για το τι μπορούν να αποθηκεύσουν οι browsers.

Τι είναι το IndexedDB;

Το IndexedDB είναι μια βάση δεδομένων χαμηλού επιπέδου ενσωματωμένη στον browser. Σε αντίθεση με την τοπική αποθήκευση και την αποθήκευση συνεδρίας, που αποθηκεύουν απλά ζεύγη κλειδιού και τιμής κειμένου, το IndexedDB μπορεί να αποθηκεύσει δομημένα δεδομένα: αντικείμενα, πίνακες, αρχεία και δυαδικά δεδομένα. Είναι αναζητήσιμο, ευρετηριασμένο και μπορεί να αποθηκεύσει πολύ περισσότερα δεδομένα από τους άλλους τύπους αποθήκευσης του browser.

Το όνομα σού δίνει μια ιδέα για το πώς δουλεύει. Χρησιμοποιεί ευρετήρια (indexes), που μοιάζουν με πίνακες αναζήτησης, για να βρίσκει γρήγορα τις αποθηκευμένες εγγραφές, χωρίς να ψάχνει μέσα σε όλα. Έτσι είναι πρακτικό για την αποθήκευση και την ανάκτηση μεγάλου όγκου δομημένων πληροφοριών μέσα στον ίδιο τον browser.

Σε τι διαφέρει το IndexedDB από την άλλη αποθήκευση του browser;

Η τοπική αποθήκευση κρατά μικρές τιμές κειμένου και τις διατηρεί επ' αόριστον. Η αποθήκευση συνεδρίας κάνει το ίδιο, αλλά μόνο για την τρέχουσα συνεδρία της καρτέλας. Και οι δύο είναι απλές και περιορισμένες. Το IndexedDB είναι θεμελιωδώς διαφορετικό σε εύρος και δυνατότητες.

Η χωρητικότητα αποθήκευσης είναι μία από τις βασικές διαφορές. Ενώ η τοπική αποθήκευση έχει συνήθως όριο 5 με 10 megabytes, το IndexedDB μπορεί να αποθηκεύσει εκατοντάδες megabytes ή και περισσότερα, ανάλογα με τον browser και τη συσκευή. Αποθηκεύει επίσης σύνθετες δομές δεδομένων απευθείας και όχι μόνο απλό κείμενο. Και υποστηρίζει ερωτήματα, δηλαδή η ιστοσελίδα μπορεί να ψάχνει και να φιλτράρει αποθηκευμένες εγγραφές αντί να ανακτά απλώς μια τιμή με το ακριβές κλειδί της.

Σε τι χρησιμοποιούν οι ιστοσελίδες το IndexedDB;

Λειτουργία χωρίς σύνδεση

Οι web εφαρμογές που πρέπει να δουλεύουν χωρίς σύνδεση στο internet χρησιμοποιούν το IndexedDB για να αποθηκεύουν δεδομένα τοπικά στη συσκευή. Μια εφαρμογή σημειώσεων, ένα εργαλείο διαχείρισης έργων ή ένας πελάτης email μπορούν να αποθηκεύσουν εγγραφές στο IndexedDB, ώστε ο επισκέπτης να μπορεί να διαβάζει, να δημιουργεί και να επεξεργάζεται περιεχόμενο ακόμα και χωρίς σύνδεση. Οι αλλαγές συγχρονίζονται πίσω στον server μόλις αποκατασταθεί η σύνδεση.

Μεγάλα σύνολα δεδομένων στον browser

Εφαρμογές που δουλεύουν με μεγάλο όγκο δεδομένων, όπως χάρτες, σύνθετα φίλτρα ή μεγάλοι κατάλογοι προϊόντων, μπορούν να χρησιμοποιούν το IndexedDB για να αποθηκεύουν αυτά τα δεδομένα τοπικά. Έτσι η εφαρμογή χρειάζεται να φέρνει δεδομένα από τον server πιο σπάνια και η εμπειρία γίνεται αισθητά πιο γρήγορη για τον χρήστη.

Αποθήκευση αρχείων

Το IndexedDB μπορεί να αποθηκεύσει αρχεία απευθείας στον browser. Αυτό το κάνει χρήσιμο σε εφαρμογές όπου οι χρήστες ανεβάζουν ή δημιουργούν περιεχόμενο που πρέπει να είναι προσβάσιμο ανάμεσα σε συνεδρίες, πριν σταλεί στον server.

Χρησιμοποιούν οι περισσότερες ιστοσελίδες το IndexedDB;

Όχι. Το IndexedDB το χρησιμοποιούν σύνθετες web εφαρμογές και όχι οι τυπικές επαγγελματικές ιστοσελίδες. Μια ιστοσελίδα marketing, μια ιστοσελίδα υπηρεσιών, ένα e-shop και οι περισσότερες ιστοσελίδες με περιεχόμενο δεν το χρειάζονται. Οι ανάγκες αποθήκευσής τους καλύπτονται πλήρως από τα cookies, την τοπική αποθήκευση και την αποθήκευση συνεδρίας.

Για τη δική σου ιστοσελίδα, την απόφαση για την αποθήκευση την αναλαμβάνει η πλατφόρμα στην οποία χτίζεις. Ο δημιουργός ιστοσελίδων του WEMASY χρησιμοποιεί αυτόματα τον σωστό τύπο αποθήκευσης για κάθε λειτουργία. Για μια σύγκριση δίπλα δίπλα όλων των τύπων αποθήκευσης του browser και του πώς ταιριάζουν μεταξύ τους, διάβασε τους τύπους αποθήκευσης του browser.

Συχνές ερωτήσεις

Είναι το IndexedDB πραγματική βάση δεδομένων;

Είναι βάση δεδομένων με την έννοια ότι αποθηκεύει δομημένα δεδομένα, υποστηρίζει ευρετήρια και επιτρέπει ερωτήματα. Είναι όμως πολύ διαφορετικό από μια βάση δεδομένων στον server. Τρέχει εξ ολοκλήρου στον browser, στη συσκευή του επισκέπτη, και όχι σε απομακρυσμένο server. Σχεδιάστηκε για αποθήκευση στην πλευρά του πελάτη και όχι για το είδος της κοινής διαχείρισης δεδομένων πολλών χρηστών που κάνουν οι βάσεις δεδομένων στον server. Με τον δημιουργό ιστοσελίδων του WEMASY, μπορείς να το στήσεις απευθείας στην ιστοσελίδα σου.

Πόσα δεδομένα μπορεί να αποθηκεύσει το IndexedDB;

Πολύ περισσότερα από την τοπική αποθήκευση ή την αποθήκευση συνεδρίας. Οι περισσότεροι browsers επιτρέπουν στο IndexedDB να χρησιμοποιεί σημαντικό μέρος του διαθέσιμου χώρου στον δίσκο, συχνά εκατοντάδες megabytes ή περισσότερα. Ο browser μπορεί να ζητήσει άδεια από τον χρήστη αν μια ιστοσελίδα προσπαθήσει να αποθηκεύσει πολύ μεγάλο όγκο. Το ακριβές όριο διαφέρει ανά browser και μπορεί να εξαρτάται και από τον ελεύθερο χώρο της συσκευής.

Μένουν τα δεδομένα του IndexedDB αφού κλείσει ο browser;

Ναι. Τα δεδομένα του IndexedDB είναι μόνιμα από προεπιλογή, όπως και η τοπική αποθήκευση. Μένουν στον browser μέχρι ο χρήστης να καθαρίσει τα δεδομένα του browser ή μέχρι να τα αφαιρέσει η ιστοσελίδα. Αυτή η διάρκεια κάνει το IndexedDB κατάλληλο για εφαρμογές που δουλεύουν χωρίς σύνδεση και χρειάζονται δεδομένα που επιβιώνουν ανάμεσα σε συνεδρίες.

Είναι ασφαλές το IndexedDB;

Το IndexedDB είναι απομονωμένο ανά ιστοσελίδα, οπότε μια ιστοσελίδα δεν μπορεί να έχει πρόσβαση στα δεδομένα μιας άλλης. Όπως όμως και οι άλλοι τύποι αποθήκευσης του browser, είναι προσβάσιμο σε scripts που τρέχουν στη σελίδα. Ευαίσθητα δεδομένα, όπως κωδικοί, στοιχεία πληρωμής και προσωπικές πληροφορίες, δεν πρέπει ποτέ να αποθηκεύονται στο IndexedDB. Ταιριάζει για δεδομένα εφαρμογής και μεγάλο περιεχόμενο, αλλά δεν πρέπει να χρησιμοποιείται ως υποκατάστατο της ασφαλούς αποθήκευσης στον server.

Μπορούν οι επισκέπτες να καθαρίσουν τα δεδομένα του IndexedDB;

Ναι. Ο καθαρισμός των δεδομένων του browser μέσα από τις ρυθμίσεις του αφαιρεί το IndexedDB μαζί με τα cookies, την τοπική αποθήκευση και το cache. Οι επισκέπτες μπορούν επίσης να το καθαρίσουν μέσα από τα εργαλεία προγραμματιστή. Οι εφαρμογές που βασίζονται στο IndexedDB για σημαντικά δεδομένα πρέπει να το λαμβάνουν υπόψη, συγχρονίζοντας τα δεδομένα με έναν server όταν υπάρχει σύνδεση, ώστε τα τοπικά δεδομένα να μην είναι ποτέ το μοναδικό αντίγραφο.

Χρειάζεται να ξέρω για το IndexedDB για να φτιάξω μια ιστοσελίδα;

Όχι. Το IndexedDB είναι εργαλείο για προγραμματιστές που φτιάχνουν σύνθετες web εφαρμογές. Ως ιδιοκτήτης ιστοσελίδας που χρησιμοποιεί μια πλατφόρμα, δεν θα το αγγίξεις ποτέ απευθείας. Ο δημιουργός ιστοσελίδων σου χειρίζεται τις αποφάσεις αποθήκευσης του browser στο παρασκήνιο. Η κατανόηση του IndexedDB είναι χρήσιμη για να έχεις πλήρη εικόνα του πώς δουλεύουν οι browsers, αλλά δεν έχει πρακτική επίδραση στο πώς τρέχεις ή διαχειρίζεσαι την ιστοσελίδα σου καθημερινά.

Βάλ’ το αμέσως σε εφαρμογή
στη δική σου ιστοσελίδα.

Ξεκίνα δωρεάν με το WEMASY και φτιάξε τη σελίδα σου σε λίγα λεπτά.