이번에는 jQuery의 Read() 메소드가 JS를 대체하는 방법을 보여드리겠습니다. jQuery의 Read() 메소드가 JS를 대체할 때 주의사항은 무엇인가요?
jQuery의 Ready 메소드는 다운로드가 완료되자마자 DOM에 있는 코드를 실행하는 것으로 잘 알려져 있습니다. 주어진 함수를 실행하기 전에 모든 DOM 요소가 로드될 때까지 기다리기 때문에 요소 노드를 작동하고 액세스하려고 시도하는 메서드가 실행된다는 것을 확신할 수 있습니다. 이 기사에서는 기본 JS 대신 jQuery의 Read() 메서드를 사용하는 방법을 소개합니다. jQuery 3.0 버전 이전에는 Ready의 일반적인 사용법은 다음과 같이익명 함수를 사용하는 것이었습니다.
$(document).ready(function() { // Handler for .ready() called. });
jQuery 3.0 Ready() 변경 사항
jQuery 3.0이 출시되기 전에는 다음과 같은 사항이 있었습니다. 다음 메소드: 준비된 메소드입니다: 문서 요소에 대한 작업: $(document).ready(handler);
$(document).ready(handler);
在空元素上操作: $().ready(handler);
或者直接(即不在一个具体的元素上)操作: $(handler);
上述所有命名的变种在功能上是等价的。无论是哪个元素,在DOM加载完毕之后其指定的处理程序都将会被调用。换句话说,这里的DOM加载完毕并不表示在文档中的某个具体的元素,比如img元素,加载完毕。相反,这里表示的是整个DOM树加载完毕。
在jQuery 3.0中,除了$(handler)
其他的ready方法都被弃用。
官方声明为此:
这是因为选择器并没有和ready()建立联系,不仅低效而且会导致浏览器引擎对该方法的行为进行不正确的假设。
ready 事件和 load 事件的区别
当DOM加载完毕且元素能够被安全访问时就会触发ready事件。另一方面,load事件却在DOM和所有资源加载后触发。
可以像下面这样使用load事件:
$(window).on("load", function(){ // Handler when all assets (including images) are loaded });
这样的话,不仅仅要等到DOM结构能完全访问,而且还需要等到所有的图片资源完全加载完毕(加载时间取决于图片文件大小)才能执行函数。
正常的DOM操作你可能不需要load事件,但是如果你想要在所有的资源被加载完毕之前展示一个旋转的加载器样式,比如,又或者你想要用JS计算一下图片的大小,这可能是一个好的选择。
你可能不需要jQuery.ready()
ready 方法可以确保代码只在所有DOM元素能被安全操纵时才执行。 但这意味着什么呢?这意味着当你要执行的js代码嵌在HTML中某个片段中时,浏览器也要加载完以下元素才能执行。
就像下面这个例子一样:
nbsp;html> <meta> <title>.ready() tutorial</title> <script></script> <script> $(function(){ // .ready() callback, is only executed when the DOM is fully loaded var length = $("p").length; // The following will log 1 to the console, as the paragraph exists. // This is the evidence that this method is only called when the // DOM is fully loaded console.log(length); }); </script> <p>I'm the content of this website</p>
如果你要执行的javascript代码放在body末尾,你就可能不需要使用ready()
方法,因为浏览器解析到javascript时你可能试图操纵和访问的DOM元素已经被加载完了:
nbsp;html> <meta> <title>.ready() tutorial</title> <p>I'm the content of this website</p> <script></script> <script> var length = $("p").length; // The following will log 1 to the console, as the paragraph exists. console.log(length); </script>
原生JavaScript ready()替代
对于现代浏览器以及IE9+,你可以通过监听 DOMContentLoaded 事件实现ready()
빈 요소에 대한 작업: $().ready (handler);
또는 직접 작동합니다(예: 특정 요소가 아님): $(handler);
위에 명명된 모든 변형은 기능적으로 동일합니다. 어떤 요소이든지 DOM이 로드된 후에 지정된 핸들러가 호출됩니다. 즉, 여기서 DOM 로딩이 완료되었다고 해서 img 요소와 같은 문서의 특정 요소가 로드되었다는 의미는 아닙니다. 반대로 여기서 의미하는 것은 전체 DOM 트리가 로드되었다는 것입니다.
jQuery 3.0에서는 $(handler)
를 제외한 모든 준비된 메서드가 더 이상 사용되지 않습니다.
공식 성명: 이것은 선택기가 Ready()에 연결되어 있지 않기 때문입니다. 이는 비효율적일 뿐만 아니라 브라우저 엔진이 이 메서드의 동작에 대해 잘못된 가정을 하게 만듭니다.
준비 이벤트와 로드 이벤트의 차이점
🎜🎜🎜준비 이벤트는 DOM이 로드되고 요소에 안전하게 액세스할 수 있을 때 트리거됩니다. 반면에 로드 이벤트는 DOM과 모든 리소스가 로드된 후에 트리거됩니다. 🎜🎜다음과 같이 로드 이벤트를 사용할 수 있습니다. 🎜document.addEventListener("DOMContentLoaded", function(){ // Handler when the DOM is fully loaded });🎜이 경우 DOM 구조에 완전히 액세스할 수 있을 때까지 기다려야 할 뿐만 아니라 모든 이미지 리소스가 완전히 로드될 때까지 기다려야 합니다(로딩 기능이 실행되기까지 걸리는 시간은 이미지 파일 크기에 따라 다릅니다. 🎜🎜일반적인 DOM 작업에는 로드 이벤트가 필요하지 않을 수 있지만, 예를 들어 모든 리소스가 로드되기 전에 회전 로더 스타일을 표시하려는 경우 또는 JS를 사용하여 이미지 크기를 계산하려는 경우 다음과 같을 수 있습니다. 좋은 선택. 🎜🎜🎜🎜jQuery.ready()가 필요하지 않을 수도 있습니다.🎜🎜🎜🎜ready 메서드는 모든 DOM 요소를 안전하게 조작할 수 있는 경우에만 코드가 실행되도록 합니다. 그런데 이것이 무엇을 의미하는가? 이는 실행하려는 js 코드가 HTML의 특정 조각에 포함된 경우 실행되기 전에 브라우저가 다음 요소도 로드해야 함을 의미합니다. 🎜🎜다음 예와 같습니다:🎜
var callback = function(){ // Handler when the DOM is fully loaded }; if ( document.readyState === "complete" || (document.readyState !== "loading" && !document.documentElement.doScroll) ) { callback(); } else { document.addEventListener("DOMContentLoaded", callback); }🎜javascript🎜를 실행하려는 경우 코드는 다음 위치에 있습니다. 결국, 브라우저가 자바스크립트를 구문 분석할 때 조작하고 액세스하려는 DOM 요소가 이미 로드되었기 때문에
ready()
메서드를 사용할 필요가 없을 수도 있습니다. 🎜document.attachEvent("onreadystatechange", function(){ // check if the DOM is fully loaded if(document.readyState === "complete"){ // remove the listener, to make sure it isn't fired in future document.detachEvent("onreadystatechange", arguments.callee); // The actual handler... } });🎜🎜🎜네이티브 JavaScript Ready( ) 대안 🎜🎜🎜🎜최신 브라우저 및 IE9+의 경우 DOMContentLoaded 이벤트를 수신하여
ready()
와 동일한 기능을 얻을 수 있습니다. 🎜rrreee🎜 그러나 참고하세요 이벤트가 이미 발생한 경우 콜백이 실행되지 않습니다. 콜백이 항상 실행되도록 하기 위해 jQuery는 문서 참조의 "readyState" 속성을 확인하고 속성 값이 완료되도록 변경되면 즉시 🎜콜백 함수🎜를 실행합니다. 🎜rrreee🎜에는 이 솔루션을 구현한 domReady 라이브러리가 포함되어 있습니다. 🎜🎜🎜🎜🎜IE 브라우저의 이전 버전🎜🎜🎜🎜🎜브라우저 IE8 이하의 경우 onreadystatechange 이벤트를 사용하여 문서의 ReadyState 속성을 모니터링할 수 있습니다. 🎜document.attachEvent("onreadystatechange", function(){ // check if the DOM is fully loaded if(document.readyState === "complete"){ // remove the listener, to make sure it isn't fired in future document.detachEvent("onreadystatechange", arguments.callee); // The actual handler... } });
或者你可以使用Load事件,如jQuery,这样可以在任何浏览器上运行。这也会导致一个时间延迟,因为它会等待所有的资产被加载。
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
위 내용은 JS를 jQuery의 Read() 메서드로 바꾸는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
