JQuery와 메소드

王林
풀어 주다: 2023-05-28 16:11:08
원래의
853명이 탐색했습니다.

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 메서드

  1. 에 여러 비동기 요청이 필요한 경우 jquery의 일반적인 사용 시나리오. 모든 것이 완료되면 다음 단계를 수행하세요
    여러 AJAX 요청을 동시에 보내는 것은 웹 개발의 일반적인 사용 사례입니다. 각 요청이 응답을 받은 후 다음 요청 처리를 트리거하는 것을 방지하기 위해 jquery when 메서드를 사용하여 모든 요청이 완료될 때까지 기다릴 수 있습니다. 예:

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响应数据
로그인 후 복사

});

  1. 모든 단계에서 데이터가 준비되었는지 확인하세요
    비동기 데이터 로딩 중에는 일반적으로 로딩 표시를 표시하거나 사용자가 의미 없는 작업을 수행하지 못하도록 해야 합니다. jquery when 메서드는 이 기능을 편리하게 구현할 수 있습니다. 예:

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);
로그인 후 복사
  1. 다음 단계를 수행하기 전에 여러 애니메이션이 완료될 때까지 기다리세요
    애니메이션의 완료 이벤트를 Promises 개체(여러 개체를 함께 결합)로 캡슐화하여 다음 단계를 수행하기 전에 모든 애니메이션이 완료될 때까지 기다릴 수 있습니다. 예:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿