thực sự là câu hỏi đơn giản như chủ đề nói. Có cách nào để cung cấp cho xử lý ajax khác nhau một ưu tiên cao hơn/thấp hơn (có nghĩa là ở đây, rằng họ sẽ bắn trước đó)?jQuery - đặt ưu tiên xử lý Ajax
Tôi có ý gì? Vâng, tôi phải đối phó với một ứng dụng web khá lớn. Tấn yêu cầu Ajax được kích hoạt trong các mô-đun khác nhau. Bây giờ, mục tiêu của tôi là triển khai một cơ chế thời gian chờ phiên đơn giản. Mỗi yêu cầu gửi id phiên hiện tại làm tham số, nếu id phiên không hợp lệ nữa, tập lệnh phụ trợ của tôi trả về yêu cầu với bộ tiêu đề phản hồi tùy chỉnh (giá trị là một uri).
Vì vậy, tôi về cơ bản sẽ như thế này
window.jQuery && jQuery(document).ajaxComplete(function(event, xhr, settings) {
var redirectto = xhr.getResponseHeader('new_ajax_location');
if(redirectto) {
location.href = redirectto;
}
});
làm việc này như một say mê tất nhiên, nhưng vấn đề của tôi là sự kiện ajax toàn cầu này thực sự cần phải bị sa thải đầu tiên 100% thời gian, mà không phải vậy. Một số trình xử lý yêu cầu ajax gốc sẽ ném một lỗi vì dữ liệu bị thiếu hoặc không mong muốn, trong trường hợp đó, trình xử lý toàn cục không bao giờ được thực hiện.
Bây giờ, tôi sẽ rất vui nếu tôi không cần phải đi qua mọi trình xử lý yêu cầu duy nhất và làm cho nó không an toàn cho các phản hồi dữ liệu phiên không hợp lệ. Tôi muốn làm nhiều việc hơn ở một nơi cụ thể. Nhưng làm thế nào tôi có thể chắc chắn rằng người xử lý toàn cầu của tôi sẽ bị xử tử trước?
Có thể bằng cách sử dụng gọi lại 'onSuccess'. – Stefan
@Stefan: Tôi sẽ cần phải nắm bắt tất cả các kết quả có thể cho một yêu cầu, vì vậy 'complete' là khá tốt. Nhưng tôi cũng đã kiểm tra để đặt 'thành công' và' lỗi' theo cách thủ công, không may với cùng một hành vi. – jAndy
Liên quan đến http://stackoverflow.com/questions/290254/how-to-order-events-bound-with-jquery, vì các sự kiện AJAX được triển khai bằng hệ thống sự kiện cốt lõi. –