الفرق بين المراجعتين لصفحة: «jQuery/ajaxSend»
Kinan-mawed (نقاش | مساهمات) أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>.ajaxSend()</code> في jQuery}}</noinclude>' |
Kinan-mawed (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:التابع <code>.ajaxSend()</code> في jQuery}}</noinclude> | <noinclude>{{DISPLAYTITLE:التابع <code>.ajaxSend()</code> في jQuery}}</noinclude> | ||
== <code>.ajaxSend( handler )</code> == | |||
=== القيمة المعادة === | |||
كائن [[jQuery/jQuery|jQuery]]. | |||
=== الوصف === | |||
يُستخدَم التابع <code>.ajaxSend( handler )</code> في إرفاق دالة لتنفيذها قبل إرسال طلب Ajax، يُعدُّ هذا التّابع حدثًا من [[jQuery/Ajax Events|أحداث Ajax]]. | |||
=== <code>.ajaxSend( handler )</code> === | |||
أضيفت في الإصدار 1.0. | |||
==== <code>handler</code> ==== | |||
دالة على الشكل [[JavaScript/Function|<code>Function</code>]]<code>( [[JavaScript/Event|Event]] event, [[jQuery/jqXHR|jqXHR]] jqXHR, [[JavaScript/Object|PlainObject]] ajaxOptions )</code>، وهي الدالة المطلوب استدعاؤها. | |||
عندما يكون طلب Ajax على وشك أن يُرسَل، تُطلِق jQuery الحدث <code>ajaxSend</code>. تُنفَّذ حينها كافّة مُعالجات الأحداث المُسجَّلة مع التّابع <code>.ajaxSend()</code>. | |||
لمشاهدة مثال عملي عن هذا التّابع نُجهِّز طلب بسيط لتحميل Ajax:<syntaxhighlight lang="html"> | |||
<button class="trigger">إطلاق مُعالِج الحدث</button> | |||
<div class="result"></div> <!--تُعرَض هنا النتيجة--> | |||
<div class="log"></div> <!--تُعرَض هنا رسالة السّجل--> | |||
</syntaxhighlight>أرفِق مُعالِج الحدث (event handler) إلى المستند:<syntaxhighlight lang="javascript"> | |||
$( document ).ajaxSend(function() { | |||
$( ".log" ).text( ".ajaxSendأُطلِق مُعالِج الحدث " ); | |||
}); | |||
</syntaxhighlight>نفذ الآن طلب Ajax باستخدام أي تابع jQuery:<syntaxhighlight lang="javascript"> | |||
$( ".trigger" ).click(function() { | |||
$( ".result" ).load( "ajax/test.html" ); | |||
}); | |||
</syntaxhighlight>عندما يضغط المستخدم على العنصر الذي يمتلك الصنف <code>trigger</code> ويكون طلب Ajax على وشك التنفيذ، ستُعرَض رسالة السّجل. | |||
تُستدعى كافة مُعالِجات أحداث <code>ajaxSend</code> قبل إرسال أي طلب Ajax، إن كنت تريد التفريق بين الطلبات فاستخدم المعاملات الممررة لمُعالِج الأحداث، ففي كل مرة يُنفَّذ فيها مُعالِج الحدث <code>ajaxSend</code> يُمرِّر كائن الحدث، والكائن <code>jqXHR</code> (الكائن <code>XMLHttpRequest</code> في الإصدار 1.4)، وكائن الإعدادات الذي استخدم في إنشاء الطلب. بإمكاننا على سبيل المثال حصر الاستدعاء فقط من أجل الأحداث التي تتعامل مع روابط معينة:<syntaxhighlight lang="javascript"> | |||
$( document ).ajaxSend(function( event, jqxhr, settings ) { | |||
if ( settings.url == "ajax/test.html" ) { | |||
$( ".log" ).text( ".ajaxSend أُطلِق مُعالِج الحدث" ); | |||
} | |||
}); | |||
</syntaxhighlight> | |||
=== ملاحظات إضافية === | |||
بدءًا من إصدار jQuery 1.9 أصبح إرفاق مُعالِجات الأحداث لأحداث Ajax العامة (jQuery global Ajax events) بالمستند إجباريًّا، بما في ذلك مُعالِجات الأحداث المُضافة عن طريق التّابع <code>.ajaxSend()</code>. | |||
إن استدعينا التابع <code>[[jQuery/jQuery/ajax|$.ajax()]]</code> أو <code>[[jQuery/jQuery/ajaxSetup|$.ajaxSetup()]]</code> مع تعيين الخيار <code>global</code> إلى القيمة <code>false</code>، فلن يُنفَّذ التّابع <code>.ajaxSend()</code>. | |||
=== أمثلة === | |||
إظهار رسالة قبل إرسال طلب Ajax:<syntaxhighlight lang="javascript"> | |||
$( document ).ajaxSend(function( event, request, settings ) { | |||
$( "#msg" ).append( "<li>يجري بدء الطلب " + settings.url + "</li>" ); | |||
}); | |||
</syntaxhighlight> | |||
== مصادر == | |||
* [http://api.jquery.com/ajaxSend/ صفحة التابع .ajaxSend() في توثيق jQuery الرسمي]. | |||
[[تصنيف:jQuery]] | |||
[[تصنيف:jQuery Method]] | |||
[[تصنيف:jQuery Ajax]] |
مراجعة 15:35، 7 مايو 2018
.ajaxSend( handler )
القيمة المعادة
كائن jQuery.
الوصف
يُستخدَم التابع .ajaxSend( handler )
في إرفاق دالة لتنفيذها قبل إرسال طلب Ajax، يُعدُّ هذا التّابع حدثًا من أحداث Ajax.
.ajaxSend( handler )
أضيفت في الإصدار 1.0.
handler
دالة على الشكل Function
( Event event, jqXHR jqXHR, PlainObject ajaxOptions )
، وهي الدالة المطلوب استدعاؤها.
عندما يكون طلب Ajax على وشك أن يُرسَل، تُطلِق jQuery الحدث ajaxSend
. تُنفَّذ حينها كافّة مُعالجات الأحداث المُسجَّلة مع التّابع .ajaxSend()
.
لمشاهدة مثال عملي عن هذا التّابع نُجهِّز طلب بسيط لتحميل Ajax:
<button class="trigger">إطلاق مُعالِج الحدث</button>
<div class="result"></div> <!--تُعرَض هنا النتيجة-->
<div class="log"></div> <!--تُعرَض هنا رسالة السّجل-->
أرفِق مُعالِج الحدث (event handler) إلى المستند:
$( document ).ajaxSend(function() {
$( ".log" ).text( ".ajaxSendأُطلِق مُعالِج الحدث " );
});
نفذ الآن طلب Ajax باستخدام أي تابع jQuery:
$( ".trigger" ).click(function() {
$( ".result" ).load( "ajax/test.html" );
});
عندما يضغط المستخدم على العنصر الذي يمتلك الصنف trigger
ويكون طلب Ajax على وشك التنفيذ، ستُعرَض رسالة السّجل.
تُستدعى كافة مُعالِجات أحداث ajaxSend
قبل إرسال أي طلب Ajax، إن كنت تريد التفريق بين الطلبات فاستخدم المعاملات الممررة لمُعالِج الأحداث، ففي كل مرة يُنفَّذ فيها مُعالِج الحدث ajaxSend
يُمرِّر كائن الحدث، والكائن jqXHR
(الكائن XMLHttpRequest
في الإصدار 1.4)، وكائن الإعدادات الذي استخدم في إنشاء الطلب. بإمكاننا على سبيل المثال حصر الاستدعاء فقط من أجل الأحداث التي تتعامل مع روابط معينة:
$( document ).ajaxSend(function( event, jqxhr, settings ) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( ".ajaxSend أُطلِق مُعالِج الحدث" );
}
});
ملاحظات إضافية
بدءًا من إصدار jQuery 1.9 أصبح إرفاق مُعالِجات الأحداث لأحداث Ajax العامة (jQuery global Ajax events) بالمستند إجباريًّا، بما في ذلك مُعالِجات الأحداث المُضافة عن طريق التّابع .ajaxSend()
.
إن استدعينا التابع $.ajax()
أو $.ajaxSetup()
مع تعيين الخيار global
إلى القيمة false
، فلن يُنفَّذ التّابع .ajaxSend()
.
أمثلة
إظهار رسالة قبل إرسال طلب Ajax:
$( document ).ajaxSend(function( event, request, settings ) {
$( "#msg" ).append( "<li>يجري بدء الطلب " + settings.url + "</li>" );
});