Bagaimana untuk Melaksanakan Permintaan AJAX Secara Berurutan dalam JQuery untuk Prestasi Optimum?

Barbara Streisand
Lepaskan: 2024-10-20 13:05:01
asal
836 orang telah melayarinya

How to Sequentially Execute AJAX Requests in JQuery for Optimal Performance?

Laksanakan Permintaan AJAX Secara Berurutan

Dalam senario di mana anda perlu mengulangi koleksi dan melaksanakan permintaan AJAX untuk setiap elemen secara berurutan, mengekalkan prestasi pelayan dan mengelakkan pegun penyemak imbas boleh mencabar. Berikut ialah pendekatan inovatif untuk menyelesaikan isu ini:

jQuery 1.5 :

Gunakan pemalam $.ajaxQueue(), yang menggunakan Deferred, queue(), dan $ .ajax() mekanisme. Pemalam ini menguruskan penciptaan baris gilir permintaan AJAX dan menyediakan janji yang diselesaikan apabila permintaan selesai.

(function($) {

  // Create an empty object as the AJAX request queue
  var ajaxQueue = $({});

  $.ajaxQueue = function(ajaxOpts) {
    // Define the deferred object and its promise
    var dfd = $.Deferred(),
        promise = dfd.promise();

    // Enqueue the AJAX request
    ajaxQueue.queue(doRequest);

    // Add an abort method to the promise
    promise.abort = function(statusText) {
      // Abort the request if active
      if (jqXHR) {
        return jqXHR.abort(statusText);
      }

      // Remove the request from the queue
      var queue = ajaxQueue.queue(),
          index = $.inArray(doRequest, queue);
      if (index > -1) {
        queue.splice(index, 1);
      }

      // Reject the deferred
      dfd.rejectWith(ajaxOpts.context || ajaxOpts,
        [promise, statusText, ""]);

      return promise;
    };

    // Define the function to execute the request
    function doRequest(next) {
      jqXHR = $.ajax(ajaxOpts)
        .done(dfd.resolve)
        .fail(dfd.reject)
        .then(next, next);
    }

    return promise;
  };

})(jQuery);
Salin selepas log masuk

jQuery 1.4:

Jika menggunakan jQuery 1.4, anda boleh memanfaatkan baris gilir animasi pada objek kosong untuk mewujudkan "baris gilir" tersuai untuk permintaan AJAX.

(function($) {
  // Create an empty object as the AJAX request queue
  var ajaxQueue = $({});

  $.ajaxQueue = function(ajaxOpts) {
    // Hold the original complete function
    var oldComplete = ajaxOpts.complete;

    // Enqueue the AJAX request
    ajaxQueue.queue(function(next) {
      // Define a complete callback to proceed with the queue
      ajaxOpts.complete = function() {
        // Execute the original complete function, if present
        if (oldComplete) oldComplete.apply(this, arguments);

        next(); // Proceed to the next request
      };

      // Execute the request
      $.ajax(ajaxOpts);
    });
  };

})(jQuery);
Salin selepas log masuk

Contoh Penggunaan:

Dengan teknik ini, anda boleh turutan permintaan AJAX untuk setiap item dalam koleksi, memastikan prestasi pelayan sambil mengelakkan penguncian penyemak imbas.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Permintaan AJAX Secara Berurutan dalam JQuery untuk Prestasi Optimum?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!