"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > متى يتم فصل وظائف رد الاتصال الناجحة عن مكالمات jQuery Ajax؟

متى يتم فصل وظائف رد الاتصال الناجحة عن مكالمات jQuery Ajax؟

تم النشر بتاريخ 2024-11-03
تصفح:936

When to Decouple Success Callback Functions from jQuery Ajax Calls?

فصل وظائف رد الاتصال الناجحة عن مكالمات jQuery Ajax

عند استرداد البيانات من خادم باستخدام jQuery ajax، من الشائع تحديد مدى النجاح وظيفة رد الاتصال داخل كتلة .ajax(). يؤدي هذا إلى ربط معالجة رد الاتصال باستدعاء AJAX بإحكام، مما يحد من المرونة وقابلية إعادة الاستخدام.

لتحديد رد الاتصال الناجح خارج كتلة .ajax()، يتم عادةً الإعلان عن متغير لتخزين البيانات التي تم إرجاعها. ومع ذلك، يوصى باتباع نهج أكثر حداثة باستخدام الكائنات المؤجلة.

منذ الإصدار 1.5 من jQuery، توفر الكائنات المؤجلة طريقة أفضل للتعامل مع العمليات غير المتزامنة مثل استدعاءات AJAX. إليك كيفية تحقيق ذلك:

function getData() {
    return $.ajax({
        url : 'example.com',
        type: 'GET'
    });
}

function handleData(data /* , textStatus, jqXHR */ ) {
    alert(data);
    //do some stuff
}

getData().done(handleData);

يعمل هذا الأسلوب على فصل معالجة رد الاتصال عن استدعاء AJAX، مما يسمح بعمليات رد اتصال متعددة ومعالجة الأخطاء ومزامنة الأحداث غير المتزامنة بسهولة.

على سبيل المثال :

// Timer for demo purposes, resolves itself after 5 seconds
var timer = $.Deferred();
setTimeout(timer.resolve, 5000);

// Get data using AJAX and attach done and error handlers
var ajax = getData().done(handleData).fail(error);

// Wait for both AJAX and timer to finish before continuing
$.when(timer, ajax).done(function() {
    // Both AJAX and 5s timer have finished
});

// Additional callbacks can be added even after AJAX call finishes
ajax.done(function(data) {
    //Do some stuff with data
});

يوضح هذا قوة الكائنات المؤجلة، مما يتيح قدرًا أكبر من التحكم والمرونة في العمليات غير المتزامنة في تطبيقات jQuery.

بيان الافراج أعيد طبع هذه المقالة على: 1729250296 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3