ล่าสุดการพัฒนาเว็บบทเรียน
×

HTML5 เกี่ยวกับการสอน

HTML บ้าน HTML บทนำ บรรณาธิการ HTML HTML ขั้นพื้นฐาน HTML องค์ประกอบ HTML แอตทริบิวต์ HTML หัวเรื่อง HTML ย่อหน้า HTML รูปแบบ HTML การจัดรูปแบบ HTML ใบเสนอราคา HTML รหัสคอมพิวเตอร์ HTML ความคิดเห็น HTML สี HTML CSS HTML การเชื่อมโยง HTML ภาพ ตาราง HTM​​L รายการ HTML HTML บล็อกและ Inline องค์ประกอบ HTML ชั้นเรียน HTML แบบ HTML อ่อนไหว HTML iframes HTML JavaScript HTML หัว HTML หน่วยงาน HTML สัญลักษณ์ HTML charset HTML URL เปลี่ยนเป็นรหัส HTML XHTML

HTML ฟอร์ม

HTML ฟอร์ม HTML องค์ประกอบของแบบฟอร์ม HTML รูปแบบการใส่ HTML แอตทริบิวต์การป้อนข้อมูล

HTML5

HTML5 แนะนำ HTML5 สนับสนุน HTML5 องค์ประกอบ HTML5 อรรถศาสตร์ การย้ายถิ่นของ HTM​​L5 HTML5 คู่มือสไตล์

HTML กราฟิก

HTML ผ้าใบ HTML SVG

HTML สื่อ

HTML สื่อ HTML วีดีโอ HTML เสียง HTML ปลั๊กอิน HTML YouTube

HTML APIs

HTML ตำแหน่งทางภูมิศาสตร์ HTML ลาก / Drop HTML เก็บข้อมูลท้องถิ่น HTML App ขุมทรัพย์ HTML คนงานเว็บ HTML SSE

HTML ตัวอย่าง

HTML ตัวอย่าง HTML ทดสอบ HTML5 ทดสอบ HTML สรุป

HTML คู่มืออ้างอิง

HTML รายการแท็ก HTML แอตทริบิวต์ เหตุการณ์ HTML HTML ผ้าใบ HTML เสียง / วิดีโอ HTML doctypes HTML สี HTML ชุดตัวอักษร HTML URL เปลี่ยนเป็นรหัส HTML รหัสภาษา HTTP ข้อความ HTTP วิธีการ PX to EM แปลง แป้นพิมพ์ลัด

HTML5 เก็บข้อมูลท้องถิ่น


จัดเก็บในท้องถิ่น HTML, ดีกว่า cookies


HTML เก็บข้อมูลท้องถิ่นคืออะไร?

มีการจัดเก็บในท้องถิ่น, การใช้งานเว็บสามารถจัดเก็บข้อมูลในประเทศที่อยู่ในเบราว์เซอร์ของผู้ใช้

ก่อน HTML5, ข้อมูลใบสมัครจะต้องมีการเก็บไว้ใน cookies รวมในคำขอทุกเซิร์ฟเวอร์ จัดเก็บในท้องถิ่นมีความปลอดภัยมากขึ้นและจำนวนมากของข้อมูลที่สามารถเก็บไว้ในเครื่องโดยไม่มีผลต่อประสิทธิภาพของเว็บไซต์

ซึ่งแตกต่างจาก cookies จำกัด การจัดเก็บข้อมูลที่มีขนาดใหญ่ (at least 5MB) และข้อมูลจะไม่ถูกโอนไปยังเซิร์ฟเวอร์

จัดเก็บในท้องถิ่นเป็นต่อแหล่งกำเนิด (per domain and protocol) หน้าทั้งหมดจากที่หนึ่งต้นกำเนิดสามารถจัดเก็บและเข้าถึงข้อมูลเดียวกัน


การจัดเก็บข้อมูลในท้องถิ่นและเซสชั่น

เก็บข้อมูลบนเว็บมีที่เก็บสองพื้นที่ท้องถิ่นที่แตกต่างกันการจัดเก็บและเซสชั่นการจัดเก็บข้อมูลที่แตกต่างกันในขอบเขตและอายุการใช้งาน

ข้อมูลที่วางไว้ในห้องเก็บของท้องถิ่นต่อต้นกำเนิด (การรวมกันของโปรโตคอลชื่อโฮสต์และหมายเลขพอร์ตที่กำหนดไว้ในนโยบายเดียวกันแหล่งกำเนิด) (ข้อมูลที่สามารถใช้ได้กับสคริปต์ทั้งหมดที่โหลดจากหน้าจากต้นกำเนิดเดียวกันที่ข้อมูลที่เก็บไว้ก่อนหน้านี้) และ เบราว์เซอร์ยังคงอยู่หลังจากถูกปิด

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


สนับสนุนเบราว์เซอร์

ตัวเลขในตารางระบุราว์เซอร์รุ่นแรกที่รองรับการจัดเก็บข้อมูลในพื้นที่

API
Web Storage 4.0 8.0 3.5 4.0 11.5

วัตถุ HTML เก็บข้อมูลท้องถิ่น

HTML จัดเก็บในท้องถิ่นให้สองวัตถุสำหรับการจัดเก็บข้อมูลบนไคลเอนต์:

  • window.localStorage - เก็บข้อมูลที่มีไม่มีวันหมดอายุ
  • window.sessionStorage เก็บข้อมูลหนึ่งครั้ง (ข้อมูลจะหายไปเมื่อเบราว์เซอร์แท็บปิด) -

ก่อนที่จะใช้จัดเก็บในท้องถิ่นให้ตรวจสอบการสนับสนุนเบราว์เซอร์สำหรับ localStorage และ sessionStorage :

if(typeof(Storage) !== "undefined") {
    // Code for localStorage/sessionStorage.
} else {
    // Sorry! No Web Storage support..
}

วัตถุ localStorage

วัตถุ localStorage เก็บข้อมูลที่มีไม่มีวันหมดอายุ ข้อมูลจะไม่ถูกลบเมื่อเบราว์เซอร์ถูกปิดและจะสามารถใช้ได้ในวันถัดไปสัปดาห์หรือปี

ตัวอย่าง

// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");
ลองตัวเอง»

ตัวอย่างอธิบาย:

  • สร้าง localStorage ชื่อ / คู่ค่ากับ name="lastname" และ value="Smith"
  • เรียกค่าของ "lastname" และใส่ลงในองค์ประกอบที่มี id = "ผล"

ตัวอย่างข้างต้นอาจจะมีการเขียนเช่นนี้

// Store
localStorage.lastname = "Smith";
// Retrieve
document.getElementById("result").innerHTML = localStorage.lastname;

ไวยากรณ์สำหรับการลบ "lastname" รายการ localStorage เป็นดังนี้:

localStorage.removeItem("lastname");

หมายเหตุ: คู่ชื่อ / ค่าจะถูกเก็บไว้เสมอเป็นสตริง จำไว้ว่าให้แปลงให้เป็นรูปแบบอื่นเมื่อมีความจำเป็น!

ตัวอย่างต่อไปนี้นับจำนวนครั้งที่ผู้ใช้คลิกปุ่ม ในรหัสนี้ค่าสตริงจะถูกแปลงเป็นตัวเลขที่จะสามารถเพิ่มเคาน์เตอร์:

ตัวอย่าง

if (localStorage.clickcount) {
    localStorage.clickcount = Number(localStorage.clickcount) + 1;
} else {
    localStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "You have clicked the button " +
localStorage.clickcount + " time(s).";
ลองตัวเอง»

sessionStorage วัตถุ

sessionStorage วัตถุเท่ากับ localStorage วัตถุยกเว้นว่าจะเก็บข้อมูลเพียงครั้งเดียว ข้อมูลจะถูกลบเมื่อผู้ใช้ปิดเฉพาะแท็บเบราว์เซอร์

ตัวอย่างต่อไปนี้นับจำนวนครั้งที่ผู้ใช้คลิกปุ่มในเซสชั่นปัจจุบัน:

ตัวอย่าง

if (sessionStorage.clickcount) {
    sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
} else {
    sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "You have clicked the button " +
sessionStorage.clickcount + " time(s) in this session.";
ลองตัวเอง»