HTML5 มีกลไกสองอย่างที่คล้ายกับคุกกี้เซสชัน HTTP สำหรับการจัดเก็บข้อมูลที่มีโครงสร้างในฝั่งไคลเอ็นต์และเพื่อเอาชนะข้อเสียต่อไปนี้
- คุกกี้จะรวมอยู่ในคำขอ HTTP ทุกครั้ง ซึ่งทำให้เว็บแอปพลิเคชันของคุณช้าลงโดยการส่งข้อมูลเดียวกัน
- คุกกี้จำกัดข้อมูลไว้ที่ประมาณ 4 KB ไม่เพียงพอที่จะจัดเก็บข้อมูลที่จำเป็น
กลไกทั้งสองสำหรับการจัดเก็บคือที่จัดเก็บเซสชันและที่จัดเก็บในตัวเครื่อง และจะใช้เพื่อจัดการกับสถานการณ์ที่แตกต่างกัน
ที่เก็บข้อมูลเซสชัน
Session Storage ได้รับการออกแบบมาสำหรับสถานการณ์ที่ผู้ใช้ทำธุรกรรมเดียว แต่สามารถทำธุรกรรมได้หลายรายการในหน้าต่างต่างๆ ในเวลาเดียวกัน

คุณสามารถลองเรียกใช้สิ่งต่อไปนี้เพื่อตั้งค่าตัวแปรเซสชันและเข้าถึงตัวแปรนั้นได้
ตัวอย่าง
<!DOCTYPE HTML>
<html>
<body>
<script type="text/javascript">
if( sessionStorage.hits ){
sessionStorage.hits = Number(sessionStorage.hits) +1;
} else{
sessionStorage.hits = 1;
}
document.write("Total Hits :" + sessionStorage.hits );
</script>
<p>Refresh the page to increase number of hits.</p>
<p>Close the window and open it again and check the result.</p>
</body>
</html> ที่เก็บข้อมูลในเครื่อง
Local Storage ได้รับการออกแบบสำหรับการจัดเก็บที่ครอบคลุมหลายหน้าต่างและอยู่ได้นานกว่าเซสชันปัจจุบัน โดยเฉพาะอย่างยิ่ง เว็บแอปพลิเคชันอาจต้องการจัดเก็บข้อมูลผู้ใช้หลายเมกะไบต์ เช่น เอกสารที่ผู้ใช้สร้างขึ้นทั้งหมดหรือกล่องจดหมายของผู้ใช้ ทางฝั่งไคลเอ็นต์เพื่อเหตุผลด้านประสิทธิภาพ

คุณสามารถลองเรียกใช้โค้ดต่อไปนี้เพื่อตั้งค่าตัวแปรพื้นที่เก็บข้อมูลในเครื่อง และเข้าถึงตัวแปรนั้นทุกครั้งที่เข้าถึงหน้านี้ แม้กระทั่งครั้งถัดไปเมื่อคุณเปิดหน้าต่าง
ตัวอย่าง
<!DOCTYPE HTML>
<html>
<body>
<script type="text/javascript">
if( localStorage.hits ){
localStorage.hits = Number(localStorage.hits) +1;
} else{
localStorage.hits = 1;
}
document.write("Total Hits :" + localStorage.hits );
</script>
<p>Refresh the page to increase number of hits.</p>
<p>Close the window and open it again and check the result.</p>
</body>
</html>