1. เมื่อคลิกปุ่มให้เปลี่ยนรูปภาพในฟิลด์รูปภาพ
การคัดลอกรหัสมีดังนี้:
<img id = "randimg" src = "/servlet/createvalidatenum"/>>>>>>>
<span style = "เคอร์เซอร์: hand" onclick = "reflush (); return false;"> ไม่เห็นชัดเจน </span>
<script>
ฟังก์ชั่น reflush ()
-
document.getElementById (randimg) .src = "/servlet/createvalidatenum";
-
</script>
2. คำอธิบาย
"servlet/createvalidatenum" เป็น servlet ที่เขียนโดย Java เซิร์ฟเล็ตพิมพ์ภาพ
3. ปัญหาที่เกิดขึ้น
การปรับเปลี่ยนภาพภายใต้ IE6 เป็นเรื่องปกติ แต่มันไม่ได้รีเฟรชภายใต้ IE7 และ Firefox
4. การวิเคราะห์สถานการณ์
หากภาพใหม่แตกต่างจากที่อยู่ภาพเก่าเอฟเฟกต์จะออกมา นั่นคือ: ภาพเปลี่ยนไป
แต่ฟังก์ชั่นเช่น "รหัสยืนยัน" ที่อยู่ของรูปภาพเก่าและใหม่เหมือนกัน
ในมุมมองของสถานการณ์ข้างต้นเป็นที่น่าสงสัยว่าเบราว์เซอร์อาจอ่านแคชโดยอัตโนมัติเนื่องจากที่อยู่ภาพเหมือนกัน
5. วิธีแก้ปัญหา
เปลี่ยน JavaScript เป็นสิ่งนี้:
document.getElementById (randimg) .src = "/servlet/createvalidatenum?"+math.random ();
นั่นคือ: ที่อยู่การเข้าถึงแตกต่างกันในแต่ละครั้งเนื่องจากมีการเพิ่มจำนวนสุ่ม ดังนั้นปัญหาได้รับการแก้ไข