Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mentakrifkan Fungsi Panggilan Balik Kejayaan AJAX jQuery Di Luar Sekatan .ajax()?

Bagaimana untuk Mentakrifkan Fungsi Panggilan Balik Kejayaan AJAX jQuery Di Luar Sekatan .ajax()?

DDD
DDDasal
2024-10-18 19:23:29333semak imbas

How to Define jQuery AJAX Success Callback Function Outside of .ajax() Block?

jQuery AJAX Success Callback Fungsi Definisi Di Luar .ajax() Block

Dalam jQuery, anda boleh mendapatkan semula data daripada pelayan menggunakan $. kaedah ajax(). Biasanya, fungsi panggil balik kejayaan ditakrifkan dalam blok .ajax(). Walau bagaimanapun, adalah mungkin untuk mentakrifkan panggilan balik di luar blok.

Mentakrifkan Fungsi Panggilan Balik Di Luar Blok .ajax()

Untuk menentukan panggilan balik kejayaan di luar . ajax() blok, anda harus mengembalikan hasil $.ajax() seperti berikut:

<code class="javascript">function getData() {
    return $.ajax({
        url: 'example.com',
        type: 'GET'
    });
}</code>

Kemudian, anda boleh menggunakan kaedah .done() untuk menambah panggilan balik di luar panggilan .ajax() :

<code class="javascript">getData().done(handleData);</code>

Mengendalikan Data

Fungsi handleData boleh ditakrifkan seperti berikut:

<code class="javascript">function handleData(data) {
    alert(data);
    // Do other stuff
}</code>

Data yang dihantar ke fungsi handleData ialah data yang dikembalikan daripada pelayan.

Faedah Menentukan Panggilan Balik Di Luar Blok .ajax()

Menentukan panggilan balik di luar blok .ajax() menyediakan beberapa faedah:

  • Mengasingkan pengendalian AJAX daripada pengendalian panggilan balik.
  • Membolehkan anda menambah berbilang panggilan balik, pengendali ralat, dsb.
  • Membolehkan penyegerakan yang lebih mudah bagi berbilang peristiwa tak segerak.

Contoh

Kod berikut menunjukkan cara menggunakan teknik ini:

<code class="javascript">// A trivial timer for demo purposes
var timer = $.Deferred();
setTimeout(timer.resolve, 5000);

// Add a `done` and an `error` handler to the AJAX call
var ajax = getData().done(handleData).fail(error);

// Wait for both the AJAX call and the timer to finish
$.when(timer, ajax).done(function() {
    // Both operations have finished
});

// Add an additional `done` handler to the AJAX call
ajax.done(function() {
    // Can be added even if the AJAX call has already finished
});</code>

Teknik ini berguna untuk mengasingkan fungsi AJAX daripada tindakan seterusnya dan untuk menyegerakkan berbilang operasi tak segerak.

Atas ialah kandungan terperinci Bagaimana untuk Mentakrifkan Fungsi Panggilan Balik Kejayaan AJAX jQuery Di Luar Sekatan .ajax()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn