ฉันมีโค้ด Javascript JQuery ที่เรียก Ajax ไปยังเซิร์ฟเวอร์ทุกๆ 5 นาทีเพื่อให้เซสชันเซิร์ฟเวอร์มีชีวิตอยู่และให้ผู้ใช้ล็อกอินอยู่ฉันกำลังใช้$.ajax()
วิธีการใน JQuery ดูเหมือนว่าฟังก์ชันนี้จะมีคุณสมบัติ 'ข้อผิดพลาด' ที่ฉันกำลังพยายามใช้ในกรณีที่การเชื่อมต่ออินเทอร์เน็ตของผู้ใช้หยุดทำงานเพื่อให้สคริปต์ KeepAlive ทำงานต่อไป ฉันใช้รหัสต่อไปนี้:
var keepAliveTimeout = 1000 * 10;
function keepSessionAlive()
{
$.ajax(
{
type: 'GET',
url: 'http://www.mywebapp.com/keepAlive',
success: function(data)
{
alert('Success');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Failure');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
}
});
}
เมื่อฉันเรียกใช้ฉันจะได้รับป๊อปอัป 'ความสำเร็จ' บนหน้าจอในกล่องแจ้งเตือนทุก ๆ 10 วินาทีซึ่งก็ใช้ได้ อย่างไรก็ตามทันทีที่ฉันถอดปลั๊กสายเคเบิลเครือข่ายฉันไม่ได้รับอะไรเลยฉันคาดว่าฟังก์ชันข้อผิดพลาดจะถูกเรียกและเห็นกล่องแจ้งเตือน 'ความล้มเหลว' แต่ไม่มีอะไรเกิดขึ้น
ฉันถูกต้องหรือไม่หากสมมติว่าฟังก์ชัน 'ข้อผิดพลาด' มีไว้สำหรับรหัสสถานะที่ไม่ใช่ '200' ที่ส่งคืนจากเซิร์ฟเวอร์เท่านั้น มีวิธีตรวจสอบปัญหาการเชื่อมต่อเครือข่ายเมื่อทำการโทร Ajax หรือไม่?