ภาพไม่เกี่ยวข้องกับบทความ

เมื่อครั้งที่ข้าพเจ้ายังศึกษาอยู่สาขาวิทยาการคอมฯ และชั่วโมงหนึ่งของวิชาการซ่อมบำรุงคอมพิวเตอร์ อาจารย์ท่านเดินเข้ามาในห้อง และกล่าวด้วยเสียงดังฟังชัด “วันนี้เราจะเรียนรู้เรื่องคาเช่กัน”

ถึงจะฟังชัด แต่ก็ถึงกับใบ้รับประทาน มันเป็นเรื่องใหม่ที่เรายังไม่เคยเรียนรู้กันมาเลย อีกทั้งฟังดูแล้วชื่อไอ้ตัวนี้มันก็แปลกๆ เหมือนสายการบิน คาเธ่แปซิฟิก

หลังจากแหกเคสออก อาจารย์ก็ชี้ไปที่อุปกรณ์ชิ้นหนึ่ง แล้วบอกว่า ไอ้นี่แหละคาเช่ อาจ้านนน… นี่มันแคช นี่นา เออ… นั่นแหละคาเช่

แคช เป็นชื่อเรียกของอะไรก็ตามที่ไว้สำหรับพักข้อมูล

ในซีพียู ก็มีแคช ระดับหนึ่ง ระดับสอง ยันระดับสาม

ในฮาร์ดดิสก์ ก็มีแคช พื้นที่ส่วนหนึ่ง ที่โปรแกรมต่างๆ ไว้สำหรับพักข้อมูล

ไออี ก็มีแคช ซึ่งก็คือพื้นที่ตรง internet temporary

ใครๆ ก็มีแคชก็ทั้งนั้น ท่านเองเคยจิ๊กเงินเมียเก็บไว้ในแคช บ้างหรือเปล่า ลองเปิดแคชดูซิ

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

แก้โปรแกรมกันเท่าไร ผลลัพธ์มันทะลึ่ง ออกมาเหมือนไม่ได้แก้ เซ็งเป็ดกันไปตามๆ

การบังคับไม่ให้เบราเซอร์ ไม่ว่าไออี หรือไฟฟ้อก หรือตัวอื่นๆ เก็บแคช (คือจะให้มันไปเอาข้อมูลใหม่มาจากเซิฟเวอร์เสมอ)

ถ้าจะเขียนด้วย html ก็ ใส่ meta เข้าไปในส่วน <head>

<head>
    <meta http-equiv="Cache-Control" content="no-cache" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
</head>

ถ้าจะเขียนด้วย php ก็เขียนอย่างนี้ ไว้บรรทัดแรกสุดเด้อ

<?php
    header('Cache-Control: no-cache');
    header('Pragma: no-cache');
    header('Expires: 0');
?>