jQuery 3.3

.ajaxSend()




jquery

.ajax إرسال (معالج) إرجاع: jQuery

الوصف ؛: إرفاق وظيفة ليتم تنفيذها قبل إرسال طلب Ajax. هذا هو حدث أجاكس .

كلما ajaxSend إرسال طلب Ajax ، يقوم jQuery بتشغيل الحدث ajaxSend . يتم تنفيذ أي وكل معالجات تم تسجيلها باستخدام طريقة .ajaxSend() في هذا الوقت.

لمراقبة هذه الطريقة في العمل ، قم بإعداد طلب تحميل أياكس الأساسي:

<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>

إرفاق معالج الحدث بالمستند:

$( document ).ajaxSend(function() {
  $( ".log" ).text( "Triggered ajaxSend handler." );
});

الآن ، قم بعمل طلب Ajax باستخدام أي طريقة jQuery:

$( ".trigger" ).click(function() {
  $( ".result" ).load( "ajax/test.html" );
});

عندما يقوم المستخدم بالنقر فوق العنصر باستخدام trigger فئة ، وكان طلب Ajax على وشك البدء ، يتم عرض رسالة السجل.

يتم استدعاء كافة معالجات ajaxSend ، بغض النظر عن ما هو طلب Ajax ليتم إرسالها. إذا كان يجب عليك التفريق بين الطلبات ، فاستخدم المعلمات التي تم تمريرها إلى المعالج. في كل مرة يتم تنفيذ معالج ajaxSend ، يتم تمرير كائن الحدث ، كائن jqXHR (في الإصدار 1.4 ، كائن XMLHttpRequest ) ، وكائن الإعدادات الذي تم استخدامه في إنشاء طلب Ajax. على سبيل المثال ، يمكنك تقييد معاودة الاتصال للتعامل مع الأحداث التي تتناول عنوان URL معين فقط:

$( document ).ajaxSend(function( event, jqxhr, settings ) {
  if ( settings.url == "ajax/test.html" ) {
    $( ".log" ).text( "Triggered ajaxSend handler." );
  }
});

ملاحظات إضافية:

  • اعتبارًا من jQuery 1.9 ، يجب إرفاق document بجميع معالجات الأحداث العالمية لـ .ajaxSend() jQuery ، بما في ذلك تلك التي تمت إضافتها باستخدام طريقة .ajaxSend() .
  • إذا تم $.ajax() أو $.ajaxSetup() مع الخيار global لتعيين false ، لن يتم تشغيل الأسلوب .ajaxSend() .

مثال:

إظهار رسالة قبل إرسال طلب Ajax.

$( document ).ajaxSend(function( event, request, settings ) {
  $( "#msg" ).append( "<li>Starting request at " + settings.url + "</li>" );
});