แคชในเครื่องบูสเตอร์ประสิทธิภาพของบีบีซี

Sep 15, 2025
วิธีการ
A cached image of the BBC homepage featuring a selection of news headlines

ปีที่แล้วในระหว่างการทดสอบผู้ใช้สำหรับแอป BBC News ซึ่งเป็นหนึ่งในผู้ใช้ที่แสดงความคิดเห็นที่ติดอยู่กับฉันจริงๆ พวกเขาประกาศ: "ฉันชอบไหล" ฉันไม่คิดว่าจะมีบทสรุปที่ดีกว่าเกี่ยวกับการแสดงที่ดีต่อผู้ใช้ของเรา ในแอพหรือเว็บไซต์ที่รวดเร็วผู้ใช้สามารถไหลโต้ตอบและมีส่วนร่วมกับเนื้อหา

ประสบการณ์ที่ไหลเป็นสิ่งที่ดีสำหรับเจ้าของไซต์เช่นกัน ประสบการณ์ที่ไหลอย่างรวดเร็วช่วยให้ผู้ใช้บรรลุเป้าหมายและในทางกลับกันเราบรรลุเป้าหมายขององค์กรของเรา อเมซอนและคนอื่น ๆ ได้แสดงให้เห็นถึงการเชื่อมโยงที่แข็งแกร่งระหว่างประสิทธิภาพการทำงานและกิจกรรมของผู้ใช้: ในขณะที่การรอหน้าล้มลงในระยะเวลาและเงินที่ผู้ใช้ใช้เวลาเพิ่มขึ้น

อ่านเพิ่มเติม: รีวิว Nordvpn

ตัดระยะทางด้วยแคช

แคชถูกสร้างขึ้นเมื่อมีบางอย่างจำนวนเล็กน้อยที่เก็บไว้ใกล้กับที่จำเป็นตามปกติเพื่อป้องกันการทำงานใหม่ ตัวอย่างเช่นถ้าฉันกิน Skittles ฉันมักจะเทลงในมือของฉันแล้วกินจากที่นั่น มีผลบังคับใช้ฉันกำลังสร้างแคชของ skittles ในมือของฉันเพราะมันเร็วกว่าที่จะกินพวกเขาแบบนั้นมากกว่าการกลับไปที่แพ็คเก็ต

รูปแบบเดียวกันนี้ใช้ในเทคโนโลยี มีสามแคชที่เราต้องพิจารณา:

  • เซิร์ฟเวอร์แคช: แคชข้อมูลบนเซิร์ฟเวอร์เช่นผลลัพธ์ของการสืบค้นฐานข้อมูล
  • แคชเครือข่าย: แคชที่สร้างขึ้นในเครือข่ายบางครั้งโดยผู้ให้บริการไซต์ (เรียกว่าแคชพร็อกซีย้อนกลับ) แต่บ่อยขึ้นโดย ISP หรือผู้ให้บริการเครือข่ายอื่น ๆ
  • เบราว์เซอร์แคช: เบราว์เซอร์เก็บไฟล์บนฮาร์ดไดรฟ์ของผู้ใช้เพื่อนำมาใช้ซ้ำโดยผู้ใช้

แคชสามารถทำให้การปรับปรุงประสิทธิภาพสูง ที่บีบีซีฉันได้เห็นแคชเพิ่มประสิทธิภาพมากกว่า 20 ครั้งในรหัสการผลิต มันเป็นประโยชน์ต่อผู้ประกอบการไซต์ด้วย ด้วยการแคชผู้ใช้มากขึ้นสามารถรองรับฮาร์ดแวร์เดียวกันได้ สิ่งนี้จะช่วยลดต้นทุนในฮาร์ดแวร์ต่อผู้ใช้ดังนั้นจึงช่วยลดต้นทุนการดำเนินงานของเว็บไซต์

ออกแบบด้วยแคชในใจ

เพื่อให้มีประสิทธิภาพเราต้องการใช้ข้อมูลแคชให้มากที่สุด ในการขยายการเปรียบเทียบแบบ skittles ถ้าฉันต้องการ Scittle สีน้ำเงิน แต่ฉันไม่มีสีน้ำเงิน Skittles ในมือของฉัน (AKA แคชของฉัน) ฉันจะต้องกลับไปที่แพ็คเก็ต สิ่งนี้เรียกว่า 'อัตราการเข้าชม' มันเป็น 'hit' เมื่อรายการอยู่ในแคชและ 'miss' เมื่อมันไม่ได้ เราต้องการอัตราการเข้าชมสูงเพื่อให้แคชใช้เวลาส่วนใหญ่โหลด

หนึ่งในวิธีที่ง่ายที่สุดในการเพิ่มอัตราการเข้าชมคือการลดการเปลี่ยนแปลง การเหยียด Skittles ของฉัน Analogy เล็กน้อยลองนึกภาพว่า Skittles ทั้งหมดเป็นสีแดง ด้วยวิธีนี้ Skittle ในมือของฉันจะเป็นชนแคช; ฉันไม่จำเป็นต้องกลับไปที่แพ็คเก็ต การใช้สิ่งนี้กับเว็บหากเราสามารถให้หน้าเดียวกันกับผู้ใช้มากที่สุดแคชจะมีประสิทธิภาพมากขึ้นเนื่องจากคำขอมากขึ้นจะกระทบกับแคช

แคช HTML เป็นเวลาสั้น ๆ

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

โฮมเพจข่าวใช้ส่วนหัวแคชสูงสุด 30 วินาทีเพื่อรับเนื้อหาต่อหน้าผู้ใช้อย่างรวดเร็วโดยไม่ต้องโหลดมากเกินไป

นั่นคือทฤษฎี มาเล่นกันเถอะ เริ่มต้นด้วยการดูการร้องขอการร้องขอสำหรับ HTML การแคชของทุกประเภทไฟล์ถูกควบคุมโดยใช้ส่วนหัว HTTP ส่วนหัวเป็นข้อมูล META (ข้อมูลเกี่ยวกับข้อมูล) ที่ส่งจากเซิร์ฟเวอร์ไปยังเบราว์เซอร์และมองเห็นฮาร์ดแวร์เครือข่ายทั้งหมดในระหว่างนั้น หากต้องการบอกโลกว่าได้รับอนุญาตให้แคชหน้าเว็บของเราและแบ่งปันแคชนั้นระหว่างผู้ใช้เราตั้งค่าส่วนหัวต่อไปนี้:

Cache-Control: public, max-age=30

ที่นี่เราได้กำหนดเวลา จำกัด เวลา: ระยะเวลาสูงสุดแคชควรนำหน้านี้มาใช้ซ้ำในไม่กี่วินาที สำหรับตัวอย่างนี้ฉันได้ตั้งค่าเป็น 30 วินาที

โดยการตั้งค่าหน้าเว็บเป็น 'สาธารณะ' เบราว์เซอร์ของผู้ใช้ (และฮาร์ดแวร์ใด ๆ ระหว่างทาง) จะเก็บสำเนาไว้ ดังนั้นโหลดหน้าแรกจะทำการร้องขอ แต่หน้าเว็บทั้งหมดโหลดหลังจากนั้นจะใช้การตอบกลับต้นฉบับอีกครั้งจนกว่าจะถึงเวลาที่กำหนด

ผลกระทบของฮาร์ดแวร์เครือข่ายระหว่างทางสามารถลึกซึ้ง เครือข่ายขนาดใหญ่จำนวนมาก (เช่น ISP) จะมีการแชร์แคชระหว่างผู้ใช้ ผู้ประกอบการมือถือยังใช้เทคนิคนี้อย่างมากเช่นการแคชและรีไซเคิลภาพที่ให้บริการมากกว่า 3G ผู้ประกอบการไซต์ยังสามารถวางแคช HTTP ต่อหน้าบริการของพวกเขา นี่คือสิ่งที่เราทำที่ BBC

แคชสินทรัพย์คงที่สำหรับทุกวัย

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

BBC Iplayer เก็บสินทรัพย์แบบคงที่เป็นเวลาหนึ่งปี - การดัดแปลงให้กับ URL ช่วยให้ผู้ใช้เห็นเวอร์ชันใหม่ทันที

เทคนิคที่เราใช้มากที่ BBC คือการรักษาสินทรัพย์แบบคงที่ (เช่นภาพ CSS และสคริปต์) แตกต่างกันไปตามหน้าเว็บ การแคชหน้า HTML ค้างไว้นานเกินไปอาจส่งผลให้ผู้ใช้ขาดการอัปเดตเนื้อหา แต่เราสามารถใช้ประโยชน์จากพฤติกรรมนี้เมื่อมันมาถึงสินทรัพย์คงที่

ที่บีบีซีเราส่งสินทรัพย์แบบคงที่ทั้งหมดที่มีอายุสูงสุด 31,536,000 วินาทีที่ตั้งอยู่ในส่วนหัวของแคช สิ่งนี้ทำให้มั่นใจว่าสินทรัพย์ถูกแคชเป็นเวลา 365 วัน มีผลบังคับใช้สินทรัพย์เป็นเพียงครั้งเดียว นี่เป็นสิ่งที่ดีสำหรับการแสดง แต่ไม่ดีต่อความยืดหยุ่นในการเปลี่ยนแปลงสินทรัพย์นั้นใช้เวลานานในการไปยังผู้ใช้

ในการแก้ไขปัญหานี้ทุกครั้งที่เราปล่อยหน้าใหม่ของหน้าเราเปลี่ยน URL ที่เก็บสินทรัพย์ เคล็ดลับนี้หมายความว่าการเปลี่ยนแปลงใหม่จะถูกนำมาใช้ต่อหน้าผู้ใช้ทันที แต่เรายังคงได้รับผลประโยชน์ประสิทธิภาพเดียวกัน

คำพูดสุดท้าย

การแคชเพื่อเพิ่มประสิทธิภาพของเว็บไซต์จะเปลี่ยนต้นทุนการดำเนินงานที่ลดลงสำหรับเว็บไซต์ของเราและรักษาการไหลของผู้ใช้ของเราซึ่งนำไปสู่ประสบการณ์การใช้งานที่ยอดเยี่ยม

บทความนี้ได้รับการตีพิมพ์ครั้งแรกในฉบับที่ 279 ของ NET นิตยสารที่ขายดีที่สุดในโลกสำหรับนักออกแบบเว็บไซต์และนักพัฒนา ซื้อ ปัญหา 279 หรือ สมัครสมาชิกสุทธิ .

ต้องการเรียนรู้วิธีอื่นเพื่อให้เว็บไซต์ของคุณเพิ่มความเร็ว?

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 เมษายน 2561

Jason Lengstorf เป็นนักพัฒนานักออกแบบผู้แต่งและหมีที่เป็นมิตร การมุ่งเน้นของเขาคือประสิทธิภาพและประสิทธิภาพของผู้คนทีมและซอฟต์แวร์ ที่ IBM เขาสร้างกระบวนการและระบบเพื่อสร้างสิ่งที่ถูกต้อง The Easy Thing ™ ในเวลาอื่น ๆ เขาล่องเรือในการค้นหาของว่างใหม่และดีกว่า

ในการประชุมเชิงปฏิบัติการของเขากลยุทธ์และเทคนิคการแสดงผลด้านหน้าที่ทันสมัยที่ สร้างนิวยอร์กตั้งแต่วันที่ 25-27 เมษายน 2561 เจสันจะแสดงผู้เข้าร่วมประชุมวิธีการปรับปรุงการรับรู้เวลาโหลด - นานแค่ไหนที่มันรู้สึกว่าใช้ในการโหลดหน้า - รวมถึงเวลาโหลดจริงโดยใช้เทคนิคส่วนหน้าเดียวเท่านั้นรวมถึง:

  • รูปแบบการโหลดโครงกระดูก
  • โหลดดีกว่าสำหรับสินทรัพย์คงที่
  • ขี้เกียจกำลังโหลด
  • พนักงานบริการ
  • กระบวนการสร้างที่ดีขึ้นและอื่น ๆ !

สร้างนิวยอร์กเกิดขึ้นตั้งแต่วันที่ 25-27 เมษายน 2561 รับตั๋วของคุณตอนนี้ .

บทความที่เกี่ยวข้อง:

  • 4 เคล็ดลับในการปรับปรุงประสิทธิภาพของหน้าเว็บของคุณ
  • 7 เคล็ดลับผู้เชี่ยวชาญสำหรับการจัดการประสิทธิภาพเว็บ
  • 3 วิธีง่ายๆในการเพิ่มความเร็วเว็บไซต์ของคุณ

วิธีการ - บทความยอดนิยม

วิธีทำความสะอาด Paintbrushes: คู่มือที่ชัดเจน

วิธีการ Sep 15, 2025

(เครดิตรูปภาพ: Sonny Flanaghan) การเรียนรู้วิธีทำควา�..


วิธีการวาดสุนัข

วิธีการ Sep 15, 2025

บทช่วยสอนวันนี้จะแสดงวิธีการวาดสุนัข โครงกร�..


วิธีการลบริ้วรอยใน Photoshop

วิธีการ Sep 15, 2025

(เครดิตภาพ: Jason Parnell-Brookes) บทช่วยสอนนี้จะแสดงวิธ�..


Magic Making Image Magic กับ Houdini

วิธีการ Sep 15, 2025

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ ..


เพิ่มสีดิจิตอลให้กับภาพวาดดินสอ

วิธีการ Sep 15, 2025

คลิกที่ภาพเพื่อดูขนาดเต็ม ฉันเ..


ออกแบบกราฟิก SVG ในเบราว์เซอร์ของคุณ

วิธีการ Sep 15, 2025

ที่ Vecteezy Editor เป็นชุดแก้ไขเวกเตอร์ฟรีที่ทำง�..


สร้างตัวละครที่มีความสมจริง stylized

วิธีการ Sep 15, 2025

มีพลอย เป็นเว็บไซต์ที่ดำเนินการโดย Henning Sanden �..


ค้นพบสไตล์และเนื้อหาของการพิมพ์

วิธีการ Sep 15, 2025

การตัดสินใจการตัดสินใจการตัดสินใจ ... หากมีสิ่งสำคัญอย่างหนึ่งต่อกร..


หมวดหมู่