지연 로딩 자바스크립트
JavaScript를 지연 로드하는 방법
JavaScript의 진정한 지연 로딩이란 페이지 콘텐츠가 완전히 로드된 후에만 JavaScript를 로드하거나 구문 분석하는 것을 의미합니다(즉, JavaScript는 페이지 속도나 중요도에 영향을 줄 수 없음). 길).
"onload" 이벤트를 사용하여 외부 JavaScript 리소스 호출
-
페이지 콘텐츠가 로드되기 전에는 외부 JavaScript 리소스를 로드할 수 없습니다
외부 JavaScript 리소스가 실행되기 시작하고 콘텐츠가 로드된 후 페이지에 영향을 미칩니다
설명
인터넷의 초점은 종종 사람입니다. 다양한 솔루션에 대한 열광을 찾으려고 노력하면서 JavaScript 지연 로딩이 초점 중 하나입니다.
많은 사람들이 "그냥 연기를 사용하세요", "그냥 비동기를 사용하세요", "그냥 페이지 하단에 JavaScript를 넣으세요"라고 말하지만 해결되지 않습니다. 문제 - 페이지를 완전히 로드한 다음 ( 완전히 로드한 후에만) 외부 JS를 로드합니다. 또한 이러한 방법을 사용하면 Google Page Speed 도구에서 얻은 "JavaScript 로드 지연" 경고를 통과할 수 없습니다(번역자는 테스트 중에 위의 세 가지 방법으로 이 경고를 제거할 수 있다는 사실을 발견했기 때문에 이에 대해 약간의 의구심을 갖고 있습니다).
이 솔루션이 답해 드립니다.
외부 JavaScript 파일을 호출하는 스크립트
이 코드는 HTML 문서의 </body>
태그 앞에 위치합니다(HTML 문서 하단 근처). 외부 스크립트의 이름은 defer.js
입니다.
<script type="text/javascript">function downloadJSAtOnload() { var element = document.createElement("script"); element.src = "defer.js"; document.body.appendChild( element );}if ( window.addEventListener ) { window.addEventListener( "load", downloadJSAtOnload, false );} else if ( window.attachEvent ) { window.attachEvent( "onload", downloadJSAtOnload );} else { window.onload = downloadJSAtOnload;} </script>
이 스크립트의 기능은 무엇인가요?
문서가 완전히 로드될 때까지 기다린 후 외부 파일 "defer.js"를 로드하라는 코드입니다.
자세한 안내
1. 위의 코드를 복사하세요.
2.
</body>
태그3.
defer.js
을 외부 파일 이름으로 변경합니다.4. 맞습니다. 예: "defer.js"를 사용하는 경우 "defer.js" 파일은 HTML 파일과 동일한 폴더에 있어야 합니다.
어떤 용도로 사용할 수 있나요(또는 할 수 없는 것)
이 코드는 페이지가 완전히 로드될 때까지 외부 링크 파일을 로드하지 않습니다. JavaScript를 두 그룹으로 나누어야 합니다. 하나는 페이지를 로드해야 하는 그룹이고 다른 하나는 페이지 로드 후 작업(예: 클릭 이벤트 또는 기타 작업 검색)을 수행하는 그룹입니다. 페이지가 로드될 때까지 기다릴 수 있는 JavaScript는 외부 파일에서 호출되어야 합니다.
예를 들어 이 페이지에서는 위 스크립트를 사용하여 Google 통계, Viglink 및 하단의 Google 플러스 아바타를 지연 로드했습니다. 이 파일들은 위에서 언급한 내용과 관련이 없고 로드할 필요도 없기 때문에 페이지 시작 부분에 이러한 파일을 로드할 이유가 없습니다. 페이지에 동일한 유형이 있을 수도 있습니다. 사용자에게 사용자 콘텐츠를 표시하기 전에 해당 리소스가 로드될 때까지 기다리게 하시겠습니까?
다른 방법은 어떨까요?
인라인 처리, 스크립트 하단에 넣기, defer
, async
사용 등은 모두 페이지를 먼저 로드한 후 JS를 로드한다는 목적을 달성하지 못하는 방법이며 실제로 이러한 방법은 보편적이지 않습니다. 그리고 교차 기능 브라우저.
이것이 왜 중요한가요?
Google에서는 페이지 로딩 속도를 순위 요소로 사용하고, 사용자는 페이지 로딩 속도를 더 빠르게 하기를 원하기 때문입니다. 이는 모바일 SEO에도 좋습니다. Google은 페이지가 호출된 시점부터 페이지의 초기 로딩이 완료될 때까지 페이지 로딩 속도를 측정합니다. 이는 페이지의 load
이벤트를 최대한 빨리 완료해야 한다는 의미이기도 합니다. Google은 홈페이지 로드 시간을 기준으로 페이지를 평가합니다. 사용자는 페이지가 로드되기를 기다리고 있습니다.
Google의 적극적인 프로모션 및 추천스크롤 없이 볼 수 있는 콘텐츠 우선(화면 콘텐츠가 우선). 따라서 화면 밖의 리소스(js, CSS, 이미지 등)를 기본 렌더링 경로에서 제외하는 것은 노력할 가치가 있습니다. 그것이 당신의 사용자를 행복하게 하고, 구글도 행복하게 만든다면 그렇게 하지 않으시겠습니까?
사용 예
페이지를 생성한 후 여기를 클릭하면 여기에서 위의 코드 스니펫을 사용한 것을 볼 수 있습니다.
테스트 샘플 파일
글쎄, 설명을 위해 테스트할 몇 가지 테스트 페이지를 작성했습니다. 각 페이지는 동일한 작업을 수행합니다. 순수 HTML 페이지는 스크립트를 사용하여 "hello world"를 출력하기 위해 2초를 기다립니다. 이러한 페이지를 테스트하여 콘텐츠를 즉시 표시하는 방법은 단 한 가지뿐임을 확인할 수 있습니다(페이지 로드 시간에는 2초의 대기 시간이 포함되지 않음).
핵심
가장 중요한 점은 콘텐츠를 사용자에게 최대한 빠르게 제시하는 것입니다. 우리는 자바스크립트를 처리하는 방식으로는 그렇게 하지 않았습니다. 일부 스크립트는 시각적 콘텐츠 아래에서 작업을 수행하기 때문에 사용자는 콘텐츠를 확인해야 합니다. 페이지 하단이 아무리 멋져도 사용자가 페이지 하단으로 스크롤하지 않으면 페이지 하단을 멋지게 만들기 위해 스크립트를 로드할 이유가 없습니다.
도구
자바스크립트 사용 도구를 사용하여 페이지에서 JavaScript가 어떻게 사용되는지 테스트하세요.
보조 확장
1. Defer 및 async
두 속성 모두 페이지 최적화 목적으로 사용할 수 있지만 차이점은 무엇인가요? 하나의 사진으로 답할 수 있습니다:
2. Below the Fold
wordstream의 정의에 따르면:
Below the fold
은 스크롤만 있음을 의미합니다. 웹페이지에만 보이는 영역.
Above the Fold
은 페이지를 스크롤하지 않고도 보이는 콘텐츠 영역을 말합니다.
일반적으로 스크롤 없이 화면에 표시되는 콘텐츠는 더 많은 관심을 받고, 스크롤이 필요한 콘텐츠는 덜 주목을 받습니다. fold
뉴스 출판 업계에서 이러한 견해가 나옵니다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









SpringDataJPA는 JPA 아키텍처를 기반으로 하며 매핑, ORM 및 트랜잭션 관리를 통해 데이터베이스와 상호 작용합니다. 해당 리포지토리는 CRUD 작업을 제공하고 파생 쿼리는 데이터베이스 액세스를 단순화합니다. 또한 지연 로딩을 사용하여 필요한 경우에만 데이터를 검색하므로 성능이 향상됩니다.

평소와 같이 몇 가지 질문을 해보겠습니다. 왜 동적 연결인가? 동적 연결을 수행하는 방법은 무엇입니까? 주소 독립적 코드 기술이란 무엇입니까? 지연 바인딩 기술이란 무엇입니까? 프로그램이 실행되는 동안 명시적 링크를 수행하는 방법은 무엇입니까? 왜 동적 연결인가? 동적 연결의 출현은 정적 연결의 일부 단점인 메모리 및 디스크 공간 절약을 해결하기 위한 것입니다. 아래 그림에 표시된 것처럼 Program1과 Program2에는 각각 Program1.o와 Program2.o라는 두 개의 모듈이 포함되어 있으며 둘 다 Lib가 필요합니다. 오 모듈. 정적 링크의 경우 두 대상 파일 모두 Lib.o 모듈을 사용하므로 링크로 출력된 실행 파일 Program1 및 Program2에 복사본을 갖고 동시에 실행됩니다.

기사 키워드: JavaJPA 성능 최적화 ORM 엔터티 관리 JavaJPA(JavaPersistance API)는 Java 개체를 사용하여 데이터베이스의 데이터를 작동할 수 있는 ORM(객체 관계형 매핑) 프레임워크입니다. JPA는 데이터베이스와 상호 작용하기 위한 통합 API를 제공하므로 동일한 코드를 사용하여 다른 데이터베이스에 액세스할 수 있습니다. 또한 JPA는 지연 로딩, 캐싱, 더티 데이터 감지와 같은 기능도 지원하여 애플리케이션 성능을 향상시킬 수 있습니다. 그러나 잘못 사용하면 JPA 성능이 애플리케이션에 병목 현상을 일으킬 수 있습니다. 다음은 몇 가지 일반적인 성능 문제입니다. N+1 쿼리 문제: 응용 프로그램에서 JPQL 쿼리를 사용할 때 N+1 쿼리 문제가 발생할 수 있습니다. 이런 종류의

너무 큰 HTML 이미지를 최적화하는 몇 가지 방법은 다음과 같습니다. 이미지 파일 크기 최적화: 압축 도구나 이미지 편집 소프트웨어를 사용합니다. 미디어 쿼리 사용: 장치에 따라 이미지 크기를 동적으로 조정합니다. 지연 로딩 구현: 이미지가 가시 영역에 들어갈 때만 이미지를 로드합니다. CDN 사용: 이미지를 여러 서버에 배포합니다. 이미지 자리 표시자 사용: 이미지가 로드되는 동안 자리 표시자 이미지를 표시합니다. 축소판 사용: 이미지의 작은 버전을 표시하고 클릭 시 전체 크기 이미지를 로드합니다.

Hibernate 쿼리 성능을 최적화하기 위한 팁은 다음과 같습니다: 지연 로딩을 사용하여 컬렉션 및 관련 개체 로드를 연기하고, 일괄 처리를 사용하여 업데이트, 삭제 또는 삽입 작업을 결합하여 HQL 외부 연결을 사용하여 자주 쿼리되는 개체를 메모리에 저장합니다. 엔터티 및 관련 엔터티를 검색하고, SELECTN+1 쿼리 모드를 피하기 위해 쿼리 매개변수를 최적화합니다. 커서를 사용하여 블록의 대규모 데이터를 검색합니다.

iframe 로딩 이벤트를 방지하는 방법 웹 개발에서는 iframe 태그를 사용하여 다른 웹 페이지나 콘텐츠를 삽입하는 경우가 많습니다. 기본적으로 브라우저가 iframe을 로드하면 로딩 이벤트가 트리거됩니다. 그러나 경우에 따라 iframe 로드를 지연하거나 로드 이벤트를 완전히 방지할 수도 있습니다. 이 기사에서는 코드 예제를 통해 이를 달성하는 방법을 살펴보겠습니다. 1. iframe 로딩 지연 iframe 로딩을 지연하려면 다음을 사용할 수 있습니다.

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

Laravel 성능 병목 현상 디코딩: 최적화 기술이 완전히 공개되었습니다! 인기 있는 PHP 프레임워크인 Laravel은 개발자에게 풍부한 기능과 편리한 개발 경험을 제공합니다. 그러나 프로젝트 규모가 커지고 방문 횟수가 늘어나면서 성능 병목 현상에 직면할 수도 있습니다. 이 기사에서는 개발자가 잠재적인 성능 문제를 발견하고 해결하는 데 도움이 되는 Laravel 성능 최적화 기술을 탐구합니다. 1. Eloquent 지연 로딩을 사용한 데이터베이스 쿼리 최적화 Eloquent를 사용하여 데이터베이스를 쿼리할 때 다음을 피하세요.
