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