GORAGOD.com

freelance, web developer, web designer, hosting, domain name

อัปโหลดรูปแล้วรูปไม่เปลี่ยน

ปัญหาอย่างหนึ่งของ Ajax เมื่อทำการอัปโหลดรูปใหม่ด้วย Ajax แล้วไม่สามารถสามารถแสดงรูปใหม่ได้ ถึงแม้จะใช้ Javascript เพื่อกำหนด src ใหม่ให้กับรูปภาพแล้ว หรือแม้กระทั่งบางครั้งการเปลี่ยนรูปภาพด้วยวิธีปกติ โดยใช้ชื่อเดิม ก็ยังอาจให้ผลลัพท์เป็นรูปเดิมได้เหมือนกัน

ปัญหานี้ก็เป็นเรื่องเดิมๆของ Browser แหละครับ ก็คือเรื่องเกี่ยวกับ Cache เมื่อไรก็ตามที่เราเรียกใช้ไฟล์ชื่อเดิม และไฟล์นี้เคยถูกโหลดมาแล้ว เราก็อาจจะได้ไฟล์ที่ถูกเก็บอยู่ใน Cache มา ซึ่งไม่ได้ถูกจำกัดเฉพาะรูปภาพนะครับแต่ยังรวมถึงไฟล์อื่นๆได้ด้วย

ทางแก้ไข ถ้าเป็นไฟล์ทั่วๆไป ก็สามารถกำหนด header ไม่ให้ไปเอาจาก Cache ก็ได้ครับ แต่ถ้าเป็น รูปภาพ เราก็อาจใช้วิธีเปลี่ยน URL ไม่ให้ซ้ำเดิมครับ

เทคนิคการเปลี่ยน URL ของรูปไม่ให้ซ้ำเดิมในกรณีที่เราไม่สามารถเปลี่ยนชื่อของไฟล์ได้ ก็อาจทำได้โดยการเติม ตัวเลข หรือ ตัวหนังสือต่อท้ายชื่อไฟล์เป็น query ก็ได้ครับ เช่น

http://zzz.xxx.com/image/pic.jpg?1234578

โดยที่เงื่อนไขที่สำคัญก็คือ ตัวหนังสือที่เป็น query ที่ต้่อท้าย url ของรูปภาพต้องไม่ซ้ำเดิมครับ ซึ่งอาจได้มาจากการสุ่มก็ได้ครับ หรืออาจได้มาจากเวลาในรูปของ time stamp ก็ได้ครับ
0SHAREFacebookLINE it!
^