ใน ExpressJS, req.fresh
เป็นคุณสมบัติที่ระบุว่าคำขอยังคงสดอยู่หรือไม่
คุณสมบัตินี้สามารถเข้าถึงได้จากตัวจัดการเส้นทางและตัวจัดการข้อผิดพลาด อนุญาตให้คุณตรวจสอบว่าผู้ใช้ต้องการรับข้อมูลใหม่หรือไม่
คุณสมบัติ req.fresh
จะเท่ากับ true
หากคำขอตรงกับเงื่อนไขต่อไปนี้:
- วิธีการ HTTP คือ GET หรือ HEAD
- ไม่มีการส่งข้อมูลใดๆ ในคำขอ
- มีการระบุพารามิเตอร์
Cache-Control: max-age=0
หรือCache-Control: no-cache
ในคำขอ - มีการระบุพารามิเตอร์
If-Modified-Since
หรือIf-None-Match
ในคำขอ และค่าของพารามิเตอร์ตรงกับค่าที่ส่งคืนโดยเซิร์ฟเวอร์ในคำขอก่อนหน้า
หากคุณสมบัติ req.fresh
เท่ากับ true
คุณควรส่งคืนคำตอบที่มีสถานะ HTTP 304 (Not Modified) แทนที่จะส่งคืนข้อมูลใหม่ทั้งหมด
ตัวอย่างเช่น โค้ดต่อไปนี้จะส่งคืนคำตอบ HTTP 304 หากคำขอยังคงสดอยู่:
1 | const express = require('express'); |
โค้ดนี้จะใช้คุณสมบัติ req.fresh
เพื่อตรวจสอบว่าคำขอยังคงสดอยู่หรือไม่ หากคำขอยังคงสดอยู่ โค้ดนี้จะส่งคืนคำตอบ HTTP 304 หากคำขอไม่ได้ยังคงสดอยู่ โค้ดนี้จะส่งคืนข้อมูลใหม่
เมื่อคุณส่งคำขอ GET ไปยัง URL /
ด้วยพารามิเตอร์ Cache-Control: max-age=0
ในหัวเรื่องคำขอ คุณจะเห็นคำตอบ HTTP 304