> 웹 프론트엔드 > JS 튜토리얼 > jQuery를 사용하여 이미지를 비동기적으로 로드하려면 어떻게 해야 합니까?

jQuery를 사용하여 이미지를 비동기적으로 로드하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-11-15 09:38:02
원래의
1000명이 탐색했습니다.

How Can I Asynchronously Load Images with jQuery?

jQuery로 이미지 비동기 로딩

비동기 로딩 기술은 페이지 속도를 늦출 수 있는 차단 요청을 방지하여 웹 페이지 성능을 향상시키는 데 중요합니다. 표현. 이 기술은 로드하는 데 시간이 걸리고 잠재적으로 고르지 못한 사용자 경험을 초래할 수 있는 외부 이미지를 로드할 때 특히 유용합니다.

비동기 이미지 로드에 대한 일반적인 접근 방식 중 하나는 $.ajax() 메서드를 사용하는 것입니다. 그러나 이 방법은 데이터 검색용으로 설계되었으며 이미지 처리에 특별히 최적화되지 않았기 때문에 이미지 로드에 적합하지 않을 수 있다는 점은 주목할 가치가 있습니다.

대체 접근 방식: 이미지 요소 사용

jQuery를 사용하여 이미지를 비동기적으로 로드하는 보다 효율적인 방법은 새 이미지 요소를 동적으로 생성하는 것입니다. 이를 달성하는 방법은 다음과 같습니다.

var img = $("<img />").attr('src', 'http://somedomain.com/image.jpg')
    .on('load', function() {
        if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
            alert('broken image!');
        } else {
            $("#something").append(img);
        }
    });
로그인 후 복사

이 코드는 다음을 수행합니다.

  1. 새 HTML 이미지 요소($(""))를 생성하고 src 속성을 원하는 이미지 URL로 설정합니다.
  2. 이미지 로드가 완료되면 트리거되는 'load' 이벤트에 대한 이벤트 리스너를 추가합니다.
  3. 로드 핸들러 내에서 다음을 확인합니다. 이미지가 완전히 로드되었으며 해당 크기가 유효합니다.
  4. 이미지가 성공적으로 로드되면 ID가 "something"인 DOM 요소에 이미지 요소가 추가됩니다.

사용자 정의 시간 초과 구현

이 접근 방식에는 가능한 404 오류를 처리하는 데 필수적인 시간 초과 설정이 포함되어 있지 않습니다. 사용자 지정 시간 초과를 구현하려면 다음 코드를 통합할 수 있습니다.

var timeout = setTimeout(function() {
    alert('Image timed out');
}, 5000); // 5 seconds timeout

img.on('load', function() {
    clearTimeout(timeout); // Clear the timeout once the image loads
});
로그인 후 복사

이 코드를 이전 코드 조각에 추가하면 지정된 시간 초과(이 경우 5초) 내에 이미지가 로드되지 않는 경우, 시간 초과를 나타내는 경고가 표시됩니다.

위 내용은 jQuery를 사용하여 이미지를 비동기적으로 로드하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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