- INACTIVITY_TIME_LIMIT กำหนดเป็นเวลา 1 ชั่วโมง (ในหน่วยมิลลิวินาที)
- resetInactivityTimer ฟังก์ชันนี้จะถูกเรียกทุกครั้งที่ผู้ใช้มีการเคลื่อนไหว เช่น การคลิก, การเลื่อนเมาส์, การพิมพ์บนคีย์บอร์ด โดยฟังก์ชันนี้จะรีเซ็ตตัวจับเวลาทุกครั้ง
- logoutUser ฟังก์ชันนี้จะถูกเรียกเมื่อไม่มีการเคลื่อนไหวครบ 1 ชั่วโมง และจะทำการออกจากระบบโดยเปลี่ยน URL ไปยังหน้าล็อกอินหรือหน้าที่ต้องการ
// กำหนดเวลาไม่เคลื่อนไหว (ในมิลลิวินาที, 1 ชั่วโมง = 60 นาที * 60 วินาที * 1000 มิลลิวินาที)
const INACTIVITY_TIME_LIMIT = 60 * 60 * 1000; // 1 ชั่วโมง
let inactivityTimer;
// ฟังก์ชันที่ใช้ในการรีเซ็ตตัวจับเวลาหากมีการเคลื่อนไหว
function resetInactivityTimer() {
clearTimeout(inactivityTimer);
inactivityTimer = setTimeout(logoutUser, INACTIVITY_TIME_LIMIT);
}
// ฟังก์ชันออกจากระบบ
function logoutUser() {
alert('ไม่มีการใช้งานนานเกินไป กำลังออกจากระบบ...');
// ที่นี่คุณสามารถเพิ่มโค้ดเพื่อออกจากระบบ เช่น เปลี่ยนหน้าไปยังหน้าล็อกอิน
window.location.href = '/logout';
}
document.addEventListener('DOMContentLoaded', function() {
window.addEventListener('mousemove', resetInactivityTimer);
window.addEventListener('keypress', resetInactivityTimer);
window.addEventListener('click', resetInactivityTimer);
window.addEventListener('scroll', resetInactivityTimer);
// เริ่มจับเวลาเมื่อหน้าโหลดเสร็จ
resetInactivityTimer();
});