Koa.js - การแคช
การแคชเป็นคำที่ใช้ในการจัดเก็บการตอบกลับที่ใช้ซ้ำได้เพื่อให้คำขอในภายหลังเร็วขึ้น ทุกเบราว์เซอร์มาพร้อมกับการใช้งานแคช HTTP สิ่งที่เราต้องทำคือตรวจสอบให้แน่ใจว่าการตอบสนองของเซิร์ฟเวอร์แต่ละรายการมีคำสั่งส่วนหัว HTTP ที่ถูกต้องเพื่อสั่งให้เบราว์เซอร์ทราบว่าเบราว์เซอร์สามารถแคชการตอบกลับเมื่อใดและนานเท่าใด
ต่อไปนี้เป็นประโยชน์บางประการของการรวมแคชในเว็บแอปของคุณ -
ต้นทุนเครือข่ายของคุณลดลง หากเนื้อหาของคุณถูกแคชคุณจะต้องส่งน้อยลงสำหรับทุกคำขอที่ตามมา
ความเร็วและประสิทธิภาพของเว็บไซต์ของคุณเพิ่มขึ้น
เนื้อหาของคุณสามารถใช้งานได้แม้ว่าลูกค้าของคุณจะออฟไลน์ก็ตาม
เราจะใช้มิดเดิลแวร์ koa-static-cache เพื่อใช้แคชในแอปของเรา ติดตั้งมิดเดิลแวร์เหล่านี้โดยใช้ -
$ npm install --save koa-static-cache
ไปที่ไฟล์ app.js ของคุณแล้วเพิ่มรหัสต่อไปนี้
var koa = require('koa');
var app = koa();
var path = require('path');
var staticCache = require('koa-static-cache');
app.use(staticCache(path.join(__dirname, 'public'), {
maxAge: 365 * 24 * 60 * 60 //Add these files to caches for a year
}))
app.listen(3000);
koa-static-cacheมิดเดิลแวร์ใช้เพื่อแคชการตอบสนองของเซิร์ฟเวอร์ในฝั่งไคลเอ็นต์ cache-controlส่วนหัวถูกตั้งค่าตามตัวเลือกที่เรามีให้ในขณะที่เริ่มต้นวัตถุแคช เราได้กำหนดเวลาหมดอายุของการตอบกลับที่แคชไว้เป็น 1 ปี ต่อไปนี้เป็นการเปรียบเทียบคำขอที่เราส่งไปก่อนและหลังไฟล์ถูกแคช
ก่อนที่ไฟล์นี้จะถูกแคชรหัสสถานะที่ส่งคืนคือ 200 ซึ่งก็ใช้ได้ ส่วนหัวของการตอบกลับมีข้อมูลหลายอย่างเกี่ยวกับเนื้อหาที่จะแคชและยังให้ไฟล์ETag สำหรับเนื้อหา
ในครั้งต่อไปที่ส่งคำขอจะถูกส่งไปพร้อมกับ ETtag เนื่องจากเนื้อหาของเราไม่ได้เปลี่ยนแปลงบนเซิร์ฟเวอร์ ETag ที่เกี่ยวข้องจึงยังคงเหมือนเดิมและลูกค้าได้รับแจ้งว่าสำเนาที่มีอยู่ในเครื่องนั้นเป็นปัจจุบันกับสิ่งที่เซิร์ฟเวอร์จะให้และควรใช้ในเครื่องแทนการร้องขอ อีกครั้ง.
Note- สำหรับการทำให้ไฟล์แคชไม่ถูกต้องคุณเพียงแค่เปลี่ยนชื่อไฟล์และอัปเดตข้อมูลอ้างอิง เพื่อให้แน่ใจว่าคุณมีไฟล์ใหม่ที่จะส่งไปยังไคลเอนต์และไคลเอนต์ไม่สามารถโหลดกลับจากแคชได้