البرمجة

تعامل مع أخطاء PHP في AJAX.

عند التعامل مع طلب 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

javascript
var 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 للتعامل مع أي أخطاء في الاتصال بالسيرفر أو في استجابته، مثلما يظهر في الكود المذكور سابقًا.

هذه الإضافات تجعل تجربة المستخدم أكثر تحكمًا ويمكنك تحديد كيفية التعامل مع الأخطاء وعدم الاستجابة بشكل أكثر دقة.

زر الذهاب إلى الأعلى