[PHP] บังคับให้ Refresh Image CSS JS ทุกครั้งที่โหลด
In 7tip | 3 comments | permalink
มี tip เล็กๆน้อยๆมาเสนอ เวลาพัฒนา web แล้วเอามาเปิดที่ browser ตัว browser จะ cache หน้า web นั้นไว้ที่เครื่อง โดยเฉพาะ รูปภาพ ไฟล์ CSS อะไรพวกนี้ แล้วถ้าหน้า web นั้นถูกเปิดขึ้นมาใหม่ browser ก็จะเอาข้อมูลที่ cache มาแสดงผล แทนที่จะเอามาจาก server ซึ่งบางครั้งก็สะดวกดี(ทำให้เปิด web ได้เร็ว) แต่บางกรณีเราก็ต้องการให้ get ข้อมูลจาก server ทุกครั้ง อย่างเช่น รูปนั้นถูกสร้างขึ้นใหม่ทุกครั้งที่เรียก(พวกที่ใช้ GD ใน PHP สร้างรูปขึ้นมาเป็นต้นไง)
เทคนิคที่ผมใช้ก็คือ สร้าง URL ที่แตกต่างออกไปทุกครั้ง browser จะได้ไม่ cache ไว้
ตัวอย่าง. เรามี file รูปภาพจาก GD ชื่อ img.php เราก็แค่เติม parameter อะไรก็ได้มาต่อท้ายแค่นั้นเอง แบบนี้
echo ‘<img src=”img.php?refresh=’.rand(0,99999999).’”>’;
เราจะได้หน้าตา code ออกมาแบบนี้
<img src=”img.php?refresh=99999999″>
*เราจะ random ตัวเลขออกมาแทนที่เรื่อยๆหน่ะครับ จะได้ไม่ซ้ำกัน
ยังมีอีกเทคนิคนึง แต่ผมไม่ค่อยใช้ ชอบใช้แบบเฉพาะจุดมากกว่า
คำสั่ง META ให้ browser ไม่เก็บ cache
<META HTTP-EQUIV=”CACHE-CONTROL” CONTENT=”NO-CACHE”>
<meta http-equiv=”Expires” content=”0″>
<meta http-equiv=”Pragma” content=”no-cache”>*เอาไปใส่ระหว่าง <head></head> นะครับ
ใครมีเทคนิคอื่นๆอีก ช่วยแชร์ด้วยครับ
เรื่องที่เกี่ยวข้อง
email this | tag this | digg this | trackback | comment RSS feed

แบบนี้ก็มีด้วยหรอครับ
ยังไงก็ขอบคุณครับ
เอาของดีๆมาบอกกัน
ผมเคยเห็นโค้ดของฝรั่ง เล่นส่งตัวแปร get เข้าไปหาไฟล์ css ยังงงว่า มันส่งเข้าไปเพื่อประโยชน์อะไร ในเมื่อ css เองมันไม่ได้รู้เรื่องรู้ราว ตัวแปร get
ขอบคุณสำหรับความกระจ่างในวันนี้
ดีมากเลยครับ
เดี๋ยวจะได้เอาไปปรับใช้กับที่เว็บของผม
เพราะบางทีเคยแก้ไปแล้ว แต่ก็งงว่าทำไมเปิดมาใหม่มันก็ยังไม่เปลี่ยน ต้อง refresh หลายที