jQuery는 웹 개발에 널리 사용되는 JavaScript 라이브러리로 효율적이고 빠른 DOM 작업 및 이벤트 처리 기능은 물론 이식 가능한 AJAX 작업 기능도 갖추고 있습니다. when 메소드는 Promise를 기반으로 한 비동기 작업 처리 방법으로, 여러 비동기 작업의 동기 처리를 실현할 수 있습니다. 이 기사에서는 메소드 및 일반적인 애플리케이션 시나리오에서 jquery의 사용을 소개합니다.
1. jquery when 메소드의 기본 구문
여러 개의 비동기 작업을 수행하고 모두 완료한 후 다음 단계로 진행해야 하는 경우 jquery when 메소드를 사용할 수 있습니다. 이 메서드는 Promise 객체를 생성하고 객체를 반환함으로써 복잡한 비동기 처리 논리와 해당 콜백 함수 중첩을 줄일 수 있습니다.
모든 비동기 작업이 성공하면 콜백 함수의 매개변수는 각 비동기 작업의 결과로 구성된 배열이 됩니다. 비동기 작업이 실패하면 콜백 함수는 비동기 작업의 실패 이유를 반환합니다. 이 메서드는 임의 개수의 비동기 작업 개체 또는 반복 가능한 개체를 매개 변수로 허용할 수 있습니다.
$.when(비동기 작업 1, 비동기 작업 2, …).done(
function(异步操作1结果, 异步操作2结果, …) { // 在操作1和操作2都成功结束后执行的代码块 }
).fail(
function(错误原因) { // 当其他操作失败时执行的代码块 }
);
2 메서드
var promise1 = $.ajax({
url: "https://jsonplaceholder.typicode.com/todos/1", method: "GET"
});
var promise2 = $.ajax({
url: "https://jsonplaceholder.typicode.com/todos/2", method: "GET"
});
$.when(promise1, promise2).done(function ( response1, response2) {
console.log(response1[0]); // 输出第一个Ajax响应数据 console.log(response2[0]); // 输出第二个Ajax响应数据
});
var callback = function() {
console.log("Do other stuff after data is loaded");
};
$.when($.ajax('/url/to/resource'))
.done(function(response) { console.log("Data loaded successfully"); }) .always(callback);
var animation1 = $elem1.animate({ ... }).promise();
var animation2 = $elem2.animate({ ... }).promise();
var animation3 = $elem3.animate( { ... }).promise();
$.when(animation1, animation2, animation3).done(function() {
console.log("All animations have completed");
});
물론 여러 요소를 동일하게 결합할 수도 있습니다. 요소 애니메이션은 다음과 같은 promise 개체로 캡슐화됩니다.
var promiseArray = [];
promisesArray.push($element1.delay(1000).animate({ ... }).promise());
promiseArray.push($element1.fadeOut().promise());
promisesArray.push($element2.slideUp().promise());
$.when.apply(null, promiseArray).done(함수( ) {
console.log("All animations have completed");
});
간단히 말하면 jquery when 메소드는 다양한 비동기 작업에 적합한 동기 처리 솔루션입니다. 코드가 간단하고 관리하기 쉬워 실제 개발에 널리 사용됩니다. 이 기사가 독자들에게 jquery when 메서드의 기본 구문과 일반적인 애플리케이션 시나리오에 대한 깨달음을 제공할 수 있기를 바랍니다.
위 내용은 JQuery와 메소드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!