คำถาม
เมื่อเร็ว ๆ นี้ฉันใช้ EasyUI เพื่อพัฒนาระบบพื้นหลัง ฉันพบปัญหาแปลก ๆ ระหว่างการทดสอบ $ ('dg'). dataGrid ('โหลดซ้ำ'); เมื่อโหลดข้อมูลตารางซ้ำฉันไม่มีปฏิกิริยาเลย ต่อมาฉันพบว่าไม่ใช่ว่าไม่มีการตอบสนอง แต่เบราว์เซอร์ใช้แคช
สารละลาย
มีโซลูชั่นหลายอย่างสรุปโดยชาวเน็ตออนไลน์:
1. เพิ่มการประทับเวลาหลังจาก URL เพื่อให้ URL เข้าถึงในโหลดครั้งแรกและโหลดซ้ำไม่สอดคล้องกันทำให้ระบบไม่สามารถใช้ IE Cache ได้ จากการทดสอบพบว่าคำขอ EasyUI มีสตริงของตัวเลขสุ่มอยู่แล้ว _145232xxx หลังจากร้องขอ แต่เช่นยังคงใช้แคชอยู่ ในภายหลังฉันเพิ่ม RAND = XXX (หมายเลขสุ่มที่สร้างโดย Math.rand ()) ไปยัง JS ที่ร้องขอและจะไม่ใช้แคช (ฉันทดสอบจาก IE8 ถึง IE11)
2. ใช้วิธีการที่คล้ายกันในการเพิ่ม <meta> ไปยัง <head> เพื่อล้างแคช:
การคัดลอกรหัสมีดังนี้:
<meta http-equiv = "pragma" content = "no-cache">
<meta http-equiv = "cache-control" content = "no-cache ต้องทำการตรวจสอบ">
<meta http-equiv = "หมดอายุ" เนื้อหา = "พุธ, 26 ก.พ. 1997 08:21:57 GMT">
น่าเสียดายเช่นเดียวกับชาวเน็ตหลายคนฉันล้มเหลวในวิธีนี้ -
3. ประกาศวิธีการที่สอดคล้องกับโหลด dataGrid เป็น 'โพสต์' โซลูชันนี้เร็วที่สุด แต่มีปัญหาหลายอย่าง:
•หากอินเทอร์เฟซเซิร์ฟเวอร์ไม่รองรับโหมดโพสต์มันจะหยุดลง
•หากอินเทอร์เฟซเซิร์ฟเวอร์สามารถควบคุมได้เองวิธีการประนีประนอมสำหรับส่วนหน้าจะนำไปสู่อินเทอร์เฟซที่ไม่ได้หยุดพักเลย! คุณควรรู้ว่าอินเทอร์เฟซที่พักผ่อนนั้นได้รับการออกแบบแบบสอบถาม
สรุป
ดังนั้นจึงเป็นวิธีแรก การเพิ่มตัวเลขแบบสุ่มด้วยตัวเองใน URL นั้นใช้งานง่าย ยกโทษให้ฉันที่หมกมุ่นอยู่กับรหัสที่ฉันไม่ต้องการเปลี่ยนอินเทอร์เฟซเซิร์ฟเวอร์ _ (: з」∠) _