Ωστόσο, μπορείτε να παρακολουθείτε το ποσό του χώρου που χρησιμοποιείται και να αναλάβει δράση όταν προσεγγίζει το όριο. Αυτό περιλαμβάνει τον έλεγχο του μεγέθους του «LocalStorage» και της εφαρμογής στρατηγικών για τη διαχείριση της αποθήκευσης αποτελεσματικά.
Δείτε πώς μπορείτε να το προσεγγίσετε:
1. Έλεγχος μεγέθους τοπικής αποστολής:
Δεν υπάρχει άμεση μέθοδος για να αποκτήσετε το συνολικό μέγεθος του `localStorage '. Πρέπει να επαναλάβετε τα κλειδιά και να συνοψίσετε το μέγεθος της αναπαράστασης των συμβολοσειρών κάθε στοιχείου. Λάβετε υπόψη ότι αυτή είναι μια * προσέγγιση * επειδή το πραγματικό μέγεθος αποθήκευσης μπορεί να είναι ελαφρώς διαφορετικό λόγω των βελτιστοποιήσεων εσωτερικού προγράμματος περιήγησης.
`` `javascript
λειτουργία getLocalStoragesize () {
αφήστε το μέγεθος =0;
για (αφήστε το κλειδί στο LocalStorage) {
Μέγεθος +=localStorage.getItem (κλειδί) .length;
}
Μέγεθος επιστροφής. // σε χαρακτήρες
}
Αφήστε το currentSize =getLocalStoragesize ();
console.log ("Τρέχον μέγεθος τοπικής αποστολής:", currentsize, "χαρακτήρες");
`` `
2. Εφαρμογή στρατηγικών διαχείρισης μεγέθους:
Μόλις έχετε έναν τρόπο παρακολούθησης του μεγέθους, πρέπει να ορίσετε στρατηγικές για να αποφύγετε την υπέρβαση του ορίου του προγράμματος περιήγησης:
* Διαχείριση ποσοστώσεων (χρησιμοποιώντας το API αποθήκευσης): Αυτή είναι η πιο ισχυρή προσέγγιση. Το API "Storage" (συγκεκριμένα `navigator.storage.estimate ()`) παρέχει μια πιο ακριβή εκτίμηση της διαθέσιμης ποσοστώσεως και της χρήσης. Μπορείτε να το χρησιμοποιήσετε για να προσδιορίσετε πότε πλησιάζετε το όριο. Ωστόσο, αυτό είναι ένα νεότερο API και μπορεί να μην υποστηρίζεται από όλα τα προγράμματα περιήγησης.
`` `javascript
navigator.storage.estimate ().
console.log ("ποσόστωση:", ποσοστώσεις.quota, "bytes");
console.log ("Χρήση:", ποσοστώσεις.usage, "bytes");
// Εφαρμόστε τη λογική με βάση την ποσόστωση και τη χρήση.
});
`` `
* τουλάχιστον πρόσφατα χρησιμοποιείται (LRU) ή άλλες στρατηγικές εκβολής: Εάν αποθηκεύετε πολλά δεδομένα, ίσως χρειαστεί να εφαρμόσετε μια προσωρινή μνήμη LRU για να αφαιρέσετε παλαιότερα ή λιγότερο χρησιμοποιούμενα αντικείμενα όταν η αποθήκευση προσεγγίζει το όριο της. Αυτό απαιτεί προσεκτικό σχεδιασμό ανάλογα με τη δομή των δεδομένων σας.
* συμπίεση δεδομένων: Πριν από την αποθήκευση δεδομένων, σκεφτείτε να το συμπιέσετε (π.χ. χρησιμοποιώντας το `json.stringify 'με κατάλληλες επιλογές ή μια βιβλιοθήκη όπως το LZString). Αυτό μπορεί να μειώσει τον απαιτούμενο χώρο αποθήκευσης.
* Συγκεντρώσεις δεδομένων: Αντί να αποθηκεύετε πολλά μικρά αντικείμενα, προσπαθήστε να συγκεντρώσετε δεδομένα σε μεγαλύτερα, λιγότερα αντικείμενα.
* Προειδοποίηση προς τον χρήστη: Ειδοποιήστε τον χρήστη εάν ο αποθηκευτικός χώρος είναι γεμάτος.
Παράδειγμα Έλεγχος και προειδοποίηση μεγέθους συνδυασμού:
`` `javascript
const Storage_Limit_Chars =5 * 1024 * 1024; // 5MB περίπου (προσαρμόστε ανάλογα με τις ανάγκες)
Λειτουργία checkLocalStoragesize () {
const size =getLocalStoragesize ();
αν (μέγεθος> storage_limit_chars * 0.8) {// 80% όριο
Ειδοποίηση ("Η τοπική αποθήκευση είναι σχεδόν γεμάτη. Μερικά δεδομένα ενδέχεται να χαθούν εάν συνεχίσετε.");
} else αν (μέγεθος> storage_limit_chars * 0.9) {// 90% - πιο επιθετική προειδοποίηση
// Ενδεχομένως διαγράψτε κάποια δεδομένα εδώ με βάση τη στρατηγική σας LRU
}
}
// καλέστε αυτή τη λειτουργία περιοδικά ή κατά την προσθήκη δεδομένων.
checkLocalStoragesize ();
`` `
Θυμηθείτε ότι το πραγματικό μέγιστο μέγεθος εξαρτάται από το πρόγραμμα περιήγησης και μπορεί να ποικίλει με βάση παράγοντες όπως η διαθέσιμη μνήμη. Η καλύτερη προσέγγιση είναι ένας συνδυασμός παρακολούθησης, προληπτικής διαχείρισης μεγέθους και χαριτωμένου χειρισμού πιθανών περιορισμών αποθήκευσης. Πάντα ενημερώστε τους χρήστες σχετικά με τους περιορισμούς αποθήκευσης και τις στρατηγικές σας για τη διαχείρισή τους.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα