cache στην αναμνηστική απόδοση του BBC

Sep 11, 2025
πως να
A cached image of the BBC homepage featuring a selection of news headlines

Πέρυσι κατά τη διάρκεια μιας συνεδρίας δοκιμών χρήστη για την εφαρμογή News BBC, ένας από τους χρήστες έκανε ένα σχόλιο που έχει πραγματικά κολλήσει μαζί μου. Δήλωσαν: "Μου αρέσει να ρέει". Δεν νομίζω ότι υπάρχει μια καλύτερη περίληψη των επιδόσεων που σημαίνει στους χρήστες μας. Σε μια γρήγορη εφαρμογή ή ιστότοπο, ο χρήστης μπορεί να ρέει, να αλληλεπιδράσει και να εμπλακεί με το περιεχόμενο.

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

Διαβάστε περισσότερα: Αναθεώρηση Nordvpn

Κόψτε την απόσταση με μια προσωρινή μνήμη

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

Το ίδιο μοτίβο χρησιμοποιείται στην τεχνολογία. Υπάρχουν τρεις caches που πρέπει να λάβουμε υπόψη:

  • Caches Server: Αποθηκευμένα δεδομένα για το διακομιστή, όπως τα αποτελέσματα των ερωτημάτων βάσεων δεδομένων
  • Caches Network: Caches ενσωματωμένα στο δίκτυο, μερικές φορές από τον χειριστή του ιστότοπου (γνωστή ως αντίστροφη προσωρινή μνήμη μεσολάβησης), αλλά πιο συχνά από ISP ή άλλους παρόχους δικτύωσης
  • Cache Browser: Το πρόγραμμα περιήγησης αποθηκεύει τα αρχεία στον σκληρό δίσκο του χρήστη για επαναχρησιμοποίηση από τον χρήστη

Η προσωρινή αποθήκευση μπορεί να κάνει μια τεράστια βελτίωση των επιδόσεων. Στο BBC έχω δει την προσωρινή προσωρινή αύξηση της απόδοσης περισσότερο από 20 φορές στον κώδικα παραγωγής. Είναι επωφελές και για τους επιχειρηματίες. Με την προσωρινή αποθήκευση, περισσότεροι χρήστες μπορούν να υποστηριχθούν από το ίδιο υλικό. Αυτό μειώνει το κόστος στο υλικό ανά χρήστη και συνεπώς μειώνει το λειτουργικό κόστος του ιστότοπου.

Σχεδιάστε με την προσωρινή μνήμη

Για να είναι αποτελεσματική, θέλουμε να χρησιμοποιήσουμε τα προσωρινά δεδομένα όσο το δυνατόν περισσότερο. Για να επεκταθεί η αναλογία των skittles, αν θέλω ένα μπλε skittle, αλλά δεν έχω καμία μπλε skittles στο χέρι μου (γνωστός aka cache μου), θα πρέπει να επιστρέψω στο πακέτο. Αυτό είναι γνωστό ως το ποσοστό "HIT". Είναι ένα «χτύπημα» όταν το στοιχείο βρίσκεται στην κρυφή μνήμη και ένα 'miss' όταν δεν είναι. Θέλουμε ένα υψηλό ποσοστό επιτυχίας έτσι ώστε η προσωρινή μνήμη να πάρει το μεγαλύτερο μέρος του φορτίου.

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

Cache html για μικρό χρονικό διάστημα

A 30-second cache of the BBC News homepage displaying regularly updated content

Η αρχική σελίδα των ειδήσεων χρησιμοποιεί μια κεφαλίδα μνήμης Cache 30 δευτερολέπτων για να πάρει το περιεχόμενο μπροστά στους χρήστες γρήγορα χωρίς υπερβολικό φορτίο

Έτσι είναι η θεωρία. Ας πάρουμε πρακτικό. Ας ξεκινήσουμε εξετάζοντας την προσωρινή αποθήκευση του αιτήματος για το HTML. Η προσωρινή αποθήκευση όλων των τύπων αρχείων ελέγχεται χρησιμοποιώντας κεφαλίδες HTTP. Οι κεφαλίδες είναι μετα-δεδομένα (δεδομένα σχετικά με τα δεδομένα) που αποστέλλονται από το διακομιστή στο πρόγραμμα περιήγησης και ορατά σε όλο το υλικό δικτύου στο μεταξύ. Για να πείτε στον κόσμο, έχει άδεια να κρυφτεί τις σελίδες μας και να μοιραστείτε την προσωρινή μνήμη μεταξύ χρηστών, ορίζουμε την ακόλουθη κεφαλίδα:

Cache-Control: public, max-age=30

Εδώ, έχουμε ορίσει επίσης ένα χρονικό όριο: Ο μέγιστος χρόνος που η μνήμη cache θα πρέπει να επαναχρησιμοποιήσει αυτή τη σελίδα για, σε δευτερόλεπτα. Για αυτό το παράδειγμα, το έχω ορίσει σε 30 δευτερόλεπτα.

Ρύθμιση της σελίδας στο «κοινό», το πρόγραμμα περιήγησης του χρήστη (και οποιοδήποτε υλικό κατά μήκος του δρόμου) θα διατηρήσει ένα αντίγραφο. Έτσι, το φορτίο της πρώτης σελίδας θα κάνει ένα αίτημα, αλλά όλα τα φορτία σελίδας μετά από αυτό θα επαναχρησιμοποιήσουν την αρχική απόκριση, μέχρι να επιτευχθεί το χρονικό όριο.

Η επίδραση του υλικού δικτύου κατά μήκος του τρόπου μπορεί να είναι βαθιά. Πολλά μεγάλα δίκτυα (όπως ISPs) θα έχουν κοινή μνήμη cache μεταξύ των χρηστών. Οι φορείς εκμετάλλευσης κινητής τηλεφωνίας χρησιμοποιούν επίσης αυτή την τεχνική σε μεγάλο βαθμό - για παράδειγμα, για την προσωρινή μνήμη και οι ραντεβούσαν εικόνες που σερβίρονται πάνω από 3G. Οι φορείς εκμετάλλευσης ιστότοπων μπορούν επίσης να τοποθετήσουν μια κρυφή μνήμη http μπροστά από την υπηρεσία τους. Αυτό κάναμε στο BBC.

Στατικά στοιχεία ενεργητικού cache για αιώνες

A longer-term cache of BBC iPlayer displaying content that is updated only periodically

Το BBC Iplayer αποθηκεύει στατικά στοιχεία ενεργητικού για ένα χρόνο - οι μεταβολές της διεύθυνσης URL εξασφαλίζουν ότι οι χρήστες βλέπουν νέες εκδόσεις αμέσως

Μια τεχνική που χρησιμοποιούμε πολλά στο BBC είναι να αντιμετωπίζουμε διαφορετικά στατικά περιουσιακά στοιχεία (όπως εικόνες, CSS και σεναρίων) διαφορετικά για το πώς αντιμετωπίζουμε τις σελίδες. Οι σελίδες Caching HTML για πολύ καιρό μπορούν να οδηγήσουν σε χρήστες που λείπουν τις ενημερώσεις περιεχομένου, αλλά μπορούμε να επωφεληθούμε από αυτή τη συμπεριφορά όταν πρόκειται για στατικά περιουσιακά στοιχεία.

Στο BBC στέλνουμε όλα τα στατικά περιουσιακά στοιχεία με μέγιστη ηλικία 31.536.000 δευτερολέπτων που ρυθμίζονται στην κεφαλίδα της κρυφής μνήμης. Αυτό εξασφαλίζει τα περιουσιακά στοιχεία αποθηκευτούν για 365 ημέρες. Στην πραγματικότητα, τα περιουσιακά στοιχεία ζητούνται μόνο μία φορά. Αυτό είναι καλό για την απόδοση αλλά κακή για την ευελιξία καθώς οι αλλαγές στο εν λόγω περιουσιακό στοιχείο θα χρειαστούν πολύ χρόνο για να φτάσουν στον χρήστη.

Προκειμένου να λειτουργούμε γύρω από αυτό, κάθε φορά που κυκλοφόρτουμε μια νέα έκδοση μιας σελίδας, αλλάζουμε τη διεύθυνση URL όπου διατηρούνται τα περιουσιακά στοιχεία. Αυτό το τέχνασμα σημαίνει ότι οι νέες αλλαγές τοποθετούνται μπροστά στους χρήστες αμέσως, αλλά εξακολουθούμε να έχουμε τα ίδια οφέλη απόδοσης.

Τελικές λέξεις

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

Το άρθρο αυτό δημοσιεύθηκε αρχικά στην έκδοση 279 του Net, το περιοδικό Best-Selling στον κόσμο για τους σχεδιαστές και τους προγραμματιστές ιστοσελίδων. Αγορά Τεύχος 279 ή Εγγραφείτε στο NET .

Θέλετε να μάθετε άλλους τρόπους για να δώσετε στους ιστότοπούς σας μια ώθηση ταχύτητας;

Jason Lengstorf is giving his workshop Modern Front-End Performance Strategies and Techniques at Generate New York from 25 27 April 2018

Ο Jason Lengstorf δίνει στο εργαστήριό του σύγχρονες στρατηγικές και τεχνικές για την απόδοση του μπροστινού άκρου στη δημιουργία της Νέας Υόρκης από τις 25 27 Απριλίου 2018

Ο Jason Lengstorf είναι ένας προγραμματιστής, σχεδιαστής, συγγραφέας και φιλική αρκούδα. Η εστίασή του είναι στην αποτελεσματικότητα και την απόδοση των ανθρώπων, των ομάδων και λογισμικού. Στην IBM, δημιουργεί διαδικασίες και συστήματα για να κάνει το σωστό το εύκολο πράγμα. Εν πάση περιπτώσει, περιπλανιέται τη Γη σε αναζήτηση νέων και καλύτερων σνακ.

Στο εργαστήρι του σύγχρονες στρατηγικές και τεχνικές απόδοσης του μπροστινού άκρου στο Δημιουργία της Νέας Υόρκης από τις 25-27 Απριλίου 2018 , Ο Jason θα παρουσιάσει τους συμμετέχοντες πώς να βελτιώσουν τους αντιληπτούς χρόνους φόρτωσης - Πόσο καιρό αισθάνεται σαν να χρειάζεται να φορτώσει μια σελίδα - καθώς και πραγματικούς χρόνους φόρτωσης, χρησιμοποιώντας μόνο τεχνικές εμπρόσθιου άκρου, όπως:

  • Το μοτίβο φόρτωσης σκελετού
  • Καλύτερη φόρτωση για στατικά περιουσιακά στοιχεία
  • Τεμπέλης φόρτωσης
  • Εργαζόμενοι υπηρεσιών
  • Καλύτερες διαδικασίες κατασκευής και πολλά άλλα!

Δημιουργία της Νέας Υόρκης πραγματοποιείται από τις 25-27 Απριλίου 2018. Πάρτε το εισιτήριό σας τώρα .

Σχετικά Άρθρα:

  • 4 συμβουλές για να βελτιώσετε την απόδοση της σελίδας σας
  • 7 Συμβουλές εμπειρογνωμόνων για την απόδοση Web Nailing
  • 3 απλά τρόποι για να επιταχύνετε τον ιστότοπό σας

πως να - Τα πιο δημοφιλή άρθρα

Πώς να επιλέξετε ένα όνομα ιστότοπου για την επιχείρησή σας

πως να Sep 11, 2025

(Credit Image: Yan από Pexels) Προσπαθώντας να επιλέξετε ένα όνομα ιστότοπο..


Πώς να σχεδιάσετε ένα άλογο

πως να Sep 11, 2025

Σελίδα 1 από 2: Πώς να σχεδιάσετε ένα άλογο: Βήμα προς βήμα..


8 Καταπληκτικό νέο γραφικό σχεδιασμό tutorials

πως να Sep 11, 2025

Είτε ξεκινάτε απλώς σε γραφιστική ή σε ένα καρυκεύματα, υπάρχει πάντα κάτι νέο για να μάθετε αν θέλετε να..


Δημιουργία χρωματικής εκτροπής

πως να Sep 11, 2025

Η χρωματική εκτροπή (παραμόρφωση), επίσης γνωστή ως «έγχρωμο fringing» είν�..


Πώς να δημιουργήσετε λαμπερά χρώματα με χρώματα λαδιού

πως να Sep 11, 2025

Να σας ζητηθεί να περιγράψω το δικό μου Τεχνική ζωγραφικής είν..


5 Συμβουλές για τη βελτίωση των δημιουργιών VR

πως να Sep 11, 2025

Vertex Leader Workshop Glen νότια μοιράζεται τις κορυφαίες σ�..


Πώς να προσθέσετε διασκέδαση CSS υπόβαθρα στους ιστότοπούς σας

πως να Sep 11, 2025

Ο χρόνος ήταν ένα φόντο ιστοσελίδας ήταν μια μικροσκοπική εικόνα πλακ�..


Βάλτε μια επική σκηνή της Νέας Υόρκης

πως να Sep 11, 2025

Για αυτό το εργαστήριο ζωγραφίζω ένα από τα αγαπημένα μου θέματα: μια γέφυρα της Νέας Υόρκης. Έχω ζωγραφί..


Κατηγορίες