cuốn sách gpt4 ai đã làm

jQuery.load() 包装器来管理多个请求和 ".loading"CSS 类

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 21:56:41 29 4
mua khóa gpt4 Nike

Tôi sẽ .trọng tải() Được sử dụng rộng rãi cho nội dung AJAX. Thật tuyệt, nhưng tôi sẽ thích hơn nếu nó làm được nhiều hơn một chút:

  1. Nếu để đáp lại hành động của người dùng, tôi gọi nhiều lần trên cùng một div .trọng tải(), tôi có thể nhận được dữ liệu sai trong div. Điều này xảy ra khi các yêu cầu trước đó có tốc độ gọi lại chậm hơn các yêu cầu sau. Tôi cần một cái gì đó để từ chối các cuộc gọi lại cũ

  2. nếu như .trọng tải() Sẽ thật tuyệt nếu thêm một lớp CSS vào mục tiêu và xóa lớp đó sau khi quá trình gọi lại hoàn tất.

Có thư viện hoặc plugin jQuery nào cung cấp chức năng như vậy không? Hoặc nó có thể được thực hiện trong một vài dòng mã đến mức không còn giá trị sử dụng plugin?

câu trả lời hay nhất

Rất dễ dàng để tạo plugin của riêng bạn để chặn nhiều yêu cầu đồng thời. Đây là một plugin đơn giản chặn các cuộc gọi AJAX, giữ danh sách các yêu cầu chưa xử lý và hủy bỏ chúng khi có yêu cầu mới:

$.fn.preventConcurrentAjax = function() {
trả lại this.ajaxSend(function(e, jqXHR, settings) {
$.each($(this).data("pca-pending") || [], function() { this.abort(); });
$(this).data("pca-pending", [jqXHR]);
});
};

Bạn có thể dễ dàng mở rộng điều này để khi yêu cầu完成Thay vì hủy các yêu cầu trước đó vẫn còn tồn đọng trong khi chúng được xếp hàng đợi, bạn cũng cần lưu trữ dấu thời gian cho mỗi yêu cầu.

Bạn cũng có thể sử dụng jQuery .ajaxStart().ajaxStop()Đơn giản chỉ cần tự động chuyển lớp "đang tải", ví dụ:

$.fn.loadingOnAjax = function() {
var $self = $(cái này);
trả về this.ajaxStart(function() { $self.addClass("loading"); })
.ajaxStop(function() { $self.removeClass("loading"); });
};

Về trình bao bọc jQuery.load() để quản lý nhiều yêu cầu và các lớp CSS ".loading", chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/13360698/

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress