عند التعامل مع طلب AJAX بواسطة jQuery، يمكنك التحقق من حالة الاستجابة الخاصة بالطلب لمعرفة ما إذا كانت العملية قد تمت بنجاح أم لا. في حالة وجود خطأ في السيرفر PHP، قد لا تتلقى استجابة JSON مما يجعل الطلب يبقى في حالة الانتظار “Sending…” إلى الأبد. لتجنب ذلك، يمكنك استخدام timeout في طلب الـ AJAX لتحديد مدة الانتظار قبل اعتبار الطلب فاشلًا. وبعد انتهاء المهلة، يمكنك تنفيذ إجراءات مناسبة مثل عرض رسالة خطأ للمستخدم.
هناك طريقتان تقريبيتان لتنفيذ هذا الأمر، يمكنك اختيار الأنسب لمشروعك:
طريقة ١: استخدام timeout
في طلب الـ AJAX
javascript$.ajax({
url: 'your_php_file.php',
type: 'POST',
data: yourFormData,
dataType: 'json',
timeout: 5000, // تحديد مهلة الانتظار بالميللي ثانية (هنا 5 ثوانٍ)
success: function(data) {
if (data.name === 'success' && data.email === 'success') {
// إجراءات ناجحة
} else {
// رسالة خطأ للمستخدم
}
},
error: function(jqXHR, textStatus, errorThrown) {
// رسالة خطأ للمستخدم
}
});
طريقة ٢: استخدام setTimeout
لفحص استجابة الـ AJAX
javascriptvar requestCompleted = false;
$.ajax({
url: 'your_php_file.php',
type: 'POST',
data: yourFormData,
dataType: 'json',
success: function(data) {
if (data.name === 'success' && data.email === 'success') {
// إجراءات ناجحة
} else {
// رسالة خطأ للمستخدم
}
requestCompleted = true;
}
});
setTimeout(function() {
if (!requestCompleted) {
// رسالة خطأ للمستخدم
}
}, 5000); // تحديد مهلة الانتظار بالميللي ثانية (هنا 5 ثوانٍ)
يجب أن تكون قيمة المهلة متناسبة مع طبيعة تطبيقك، حيث ينبغي أن تكون كافية لانتهاء عملية الاستجابة من السيرفر وفي الوقت نفسه تجنب الانتظار الزائد للمستخدم.
المزيد من المعلومات
عند استخدام timeout
في طلب الـ AJAX، يمكنك أيضًا تنفيذ إجراءات إضافية في حالة انتهاء المهلة دون الحصول على استجابة. يمكنك على سبيل المثال تعيين قيمة خاصة بمتغير تحقق (requestCompleted
) لتتبع حالة الطلب، واستخدام دالة setTimeout
لتنفيذ كود يقوم بفحص حالة الطلب بعد انتهاء المهلة وإظهار رسالة خطأ للمستخدم إذا لم يتم الحصول على رد من السيرفر.
يمكنك أيضًا استخدام error
callback في طلب الـ AJAX للتعامل مع أي أخطاء في الاتصال بالسيرفر أو في استجابته، مثلما يظهر في الكود المذكور سابقًا.
هذه الإضافات تجعل تجربة المستخدم أكثر تحكمًا ويمكنك تحديد كيفية التعامل مع الأخطاء وعدم الاستجابة بشكل أكثر دقة.