Χαριτωμένες επεκτάσεις Chrome που δεν επιβραδύνουν τον browser σας
Οι διακοσμητικές επεκτάσεις browser έχουν μια φήμη, και τη δικαιολογούν ως επί το πλείστον: βαριές, φλύαρες, και εγκατεστημένες με μια λίστα αδειών που κανείς δεν διάβασε. Κρίμα, γιατί η κατηγορία είναι πραγματικά διασκεδαστική και το καθένα από τα προβλήματα είναι αποφεύξιμο.
Τρία πράγματα που αξίζει να ελέγξετε
- Τη λίστα αδειών. Το Chrome τη δείχνει πριν εγκαταστήσετε. Το storage είναι ένα αρχείο προτιμήσεων. Τα tabs, cookies, history και webRequest είναι αυτά που επιτρέπουν σε μια επέκταση να παρακολουθεί τι περιηγείστε.
- Αν αγγίζει τη διάταξη της σελίδας σας. Μια επέκταση που εισάγει στοιχεία στη ροή του εγγράφου, ή μετρά θέσεις στοιχείων σε κάθε συμβάν scroll, μπορεί να κάνει μια ομαλή σελίδα να κολλάει, όσο λίγο κι αν σχεδιάζει.
- Πού στέλνει αιτήματα. Μια διακόσμηση με μια πολυάσχολη καρτέλα δικτύου κάνει μια δεύτερη δουλειά που δεν σας είπαν.
Γιατί η διάταξη είναι αυτή που δαγκώνει
Η ανάγνωση μιας ιδιότητας διάταξης — το ύψος ενός στοιχείου, η θέση του στην οθόνη — αναγκάζει τον browser να ολοκληρώσει κάθε εκκρεμή εργασία διάταξης πριν μπορέσει να απαντήσει. Κάντε το αυτό μέσα σε έναν handler scroll και ζητήσατε από τον browser να σταματά και να μετρά εξήντα φορές το δευτερόλεπτο, σε μια σελίδα που είχε σχεδιάσει μόνο τη μισή.
Αυτός είναι ο μηχανισμός πίσω από τις περισσότερες παράπονα «αυτή η επέκταση κάνει το scroll να κολλάει», και είναι αόρατος μέχρι κάποιος να τον προφιλάρει. Η λύση δεν είναι εντυπωσιακή: ποτέ μην διαβάζετε διάταξη κατά το scroll, γράφετε μόνο transforms, και αφήστε τον compositor να κάνει την κίνηση.
Πώς μοιάζει αυτό εδώ
Το scrolldog είναι ένα μικρό pixel κατοικίδιο που τρέχει κατά μήκος της άκρης κάθε σελίδας με την ταχύτητα του scroll σας. Είναι επίσης ένα επεξεργασμένο παράδειγμα των παραπάνω ελέγχων, γιατί έπρεπε να τους περάσει για να είναι ανεκτό να ζει κανείς μαζί του:
- Δύο άδειες: storage και unlimitedStorage. Όχι tabs, όχι cookies, όχι history, όχι webRequest.
- Μία άδεια host — api.scroll.dog — που χρησιμοποιείται για να ελέγξει μια άδεια χρήσης, ποτέ για να αγγίξει τη σελίδα στην οποία βρίσκεστε.
- Το κατοικίδιο ζει σε ένα σταθερό κομμάτι μηδενικού μεγέθους και γράφει μόνο ένα CSS transform, οπότε η διάταξη της δικής σας σελίδας δεν αλλάζει ποτέ.
- Το scroll ακούγεται παθητικά και συμπτύσσεται σε μία εγγραφή ανά καρέ κίνησης.
- Ένας διακόπτης το αφαιρεί από κάθε ανοιχτή καρτέλα ακαριαία.
Τίποτα από αυτά δεν είναι καύχημα — είναι το ελάχιστο. Κάτι του οποίου όλη η δουλειά είναι να φαίνεται ωραίο δεν έχει κανέναν λόγο να κάνει οτιδήποτε πιο αργό.
Δείτε τον σκύλο