แนวปฏิบัติที่ดีที่สุดสำหรับการแคชผลลัพธ์การค้นหาที่มีการเปลี่ยนแปลงการสั่งซื้อ / คุณสมบัติสามารถทำได้อย่างไร?
พูดในแอปพลิเคชันของฉันมีคนต้องการเห็น 20 กระทู้การสนทนาล่าสุด (จาก 10,000) คำขอจะถูกส่งไปยังฐานข้อมูลservlet
เพื่อดึงข้อมูล 20 รายการแรกจากตารางหัวข้อการสนทนาเป็น XML / JSON หากพวกเขาต้องการที่จะเห็น 20 ถัดไปพวกเขาไปที่หน้าถัดไปของผลลัพธ์และสิ่งนี้จะดับคำขออื่นเพื่อรับล็อตถัดไป
เพื่อลดการโหลดเซิร์ฟเวอร์และการรอลูกค้าฉันต้องการแคชหน้าผลลัพธ์ก่อนหน้า อย่างไรก็ตามฉันมีสองคำถาม:
- ตารางที่แสดงผลลัพธ์สามารถสั่งซื้อได้โดยมากกว่าหนึ่งแอตทริบิวต์ (เช่นวันที่สร้างเธรด, ผู้เขียนเธรด, วันสุดท้าย) ซึ่งหมายความว่าคำสั่งเช่น 'ผลลัพธ์ 20 อันดับแรก' ไม่มีเหตุผลหากไม่มีบริบท (กล่าวคือเรากำลังจัดเรียงอะไร) ส่วนหน้าแล้วสื่อสารกับส่วนหลังสิ่งที่โหลดไปแล้วได้อย่างไร ความคิดแรกของฉันคือการใช้ ID สำหรับแต่ละผลลัพธ์ แต่การส่งกลับไปที่เซิร์ฟเวอร์ตามคำขอในภายหลัง ฉันจะทำสิ่งนี้ได้อย่างไร
- จะเกิดอะไรขึ้นหากแอตทริบิวต์ของผลลัพธ์ที่ส่งคืนก่อนหน้านี้ (เช่นล่าสุดหลังวันที่) มีการเปลี่ยนแปลง จากนั้นเราต้องการวิธีการตรวจสอบผลลัพธ์แต่ละรายการเพื่อดูว่ามีการแก้ไขฝั่งเซิร์ฟเวอร์หรือไม่เนื่องจากมีการทำเพจเอาต์ฉันจะทำสิ่งนี้ได้อย่างไร