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
Lepaskan: 2024-10-18 19:23:29
asal
336 orang telah melayarinya

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>
Salin selepas log masuk

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

<code class="javascript">getData().done(handleData);</code>
Salin selepas log masuk

Mengendalikan Data

Fungsi handleData boleh ditakrifkan seperti berikut:

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

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan