[jquery] XMLHttpRequest, jQuery.ajax, jQuery.post, jQuery.get의 차이점은 무엇입니까?

상황에 가장 적합한 방법을 어떻게 찾을 수 있습니까? 누구든지 기능과 성능의 차이를 알 수있는 몇 가지 예를 제공 할 수 있습니까?



답변

  • XMLHttpRequest jQuery가보다 유용하고 단순화 된 양식과 브라우저 간 일관된 기능으로 래핑하는 원시 브라우저 개체입니다.

  • jQuery.ajax 모든 유형 및 콘텐츠 요청을 수행 할 수있는 jQuery의 일반 Ajax 요청자입니다.

  • jQuery.get그리고 jQuery.post다른 한편으로는 단지 GET 및 POST 요청을 발행 할 수 있습니다. 이것이 무엇인지 모른다면 HTTP 프로토콜을 확인 하고 조금 배워야합니다. 내부적으로이 두 함수는 사용 jQuery.ajax하지만 직접 설정할 필요가없는 특정 설정을 사용하므로 .NET을 사용하는 것에 비해 GET 또는 POST 요청을 단순화 jQuery.ajax합니다. GET 및 POST는 어쨌든 가장 많이 사용되는 HTTP 메서드입니다 (DELETE, PUT, HEAD 또는 다른 드물게 사용되는 외래종과 비교할 때).

모든 jQuery 함수 XMLHttpRequest는 백그라운드에서 객체를 사용 하지만 사용자가 직접 수행 할 필요가없는 추가 기능을 제공합니다.

용법

따라서 jQuery를 사용하는 경우 jQuery 기능 사용하는 것이 좋습니다 . XMLHttpRequest완전히 잊어라 . 적절한 jQuery 요청 함수 변형을 사용하고 다른 모든 경우에는 $.ajax(). 따라서 , 및에 대한 다른 일반적인 jQuery Ajax 관련 함수가 있음 을 잊지 마십시오 . 모든 요청에 사용할 수 있지만 호출하려면 더 많은 옵션이 필요하기 때문에 코드를 조금 더 작성해야합니다.$.get()$.post()$.ajax()$.ajax()

유추

마치 스티어링, 브레이크 등으로 자동차 전체를 만들어야하는 자동차 엔진을 직접 구입할 수있는 것과 같습니다. 자동차 제조업체는 친숙한 인터페이스 (페달, 스티어링 휠 등)를 사용하여 완성 된 자동차를 생산합니다. 그래서 당신이 모든 것을 스스로 할 필요가 없습니다.


답변

각각은 XMLHttpRequest를 사용합니다. 이것이 브라우저가 요청을 만드는 데 사용하는 것입니다. jQuery는 JavaScript 라이브러리 일 뿐이며 $ .ajax 메서드는 XMLHttpRequest를 만드는 데 사용됩니다.

$ .post$ .get$.ajax. 그들은 거의 같은 일을하지만 AJAX 요청을 더 빠르게 작성합니다 $.post. HTTP POST 요청을 $.get만들고 HTTP GET 요청을합니다.


답변

jQuery.get에 대한 래퍼입니다 jQuery.ajaxXMLHttpRequest의에 대한 래퍼입니다.

XMLHttpRequest 및 Fetch API (현재 실험 중)는 DOM에서 유일하므로 가장 빠릅니다.

더 이상 정확하지 않은 정보를 많이 봤기 때문에 누구나 언제든지 가장 좋은 버전에서 테스트 할 수있는 테스트 페이지를 만들었습니다.

https://jsperf.com/xhr-vs-jquery-ajax-vs-get-vs-fetch

오늘 내 테스트에서 jQuery만이 깨끗하거나 빠른 솔루션이 아니라는 것을 보여줍니다. 모바일 또는 데스크톱에서 저에게 결과에 따르면 ajax를 너무 많이 사용하는 경우 jQuery가 XHR2보다 적어도 80 % 느립니다. 모바일에서는 간단한 사이트를로드하는 데 많은 시간이 걸립니다.

사용법 자체도 링크에 있습니다.


답변

jQuery.post 및 jQuery.get은 일반적인 페이지로드를 시뮬레이션합니다. 즉, 제출 버튼을 클릭하면 새 페이지로 이동합니다 (또는 동일한 페이지를 다시로드합니다). post and get은 데이터가 서버로 전송되는 방식이 약간 다릅니다 ( 여기 에서 좋은 기사를 찾을 수 있습니다 .

jQuery.ajax 및 XMLHttpRequest는 페이지가 변경되지 않는다는 점을 제외하면 post 및 get과 유사한 페이지로드입니다. 서버가 반환하는 모든 정보는 페이지 레이아웃 수정을 포함하여 어떤 방식 으로든 사용할 수 있도록 javascript에서 로컬로 사용할 수 있습니다. 일반적으로 사용자가 페이지를 탐색 할 수있는 동안 비동기 작업을 수행하는 데 사용됩니다. 이에 대한 좋은 예는 텍스트 필드를 완성하기 위해 데이터베이스 값에서 동적으로로드하는 자동 완성 기능입니다. jQuery.ajax와 XMLHttpRequest의 근본적인 차이점은 jQuery.ajax는 XMLHttpRequest를 사용하여 동일한 효과를 얻지 만 더 간단한 인터페이스를 사용한다는 것입니다. jQuery를 사용하는 경우 jQuery.ajax를 사용하는 것이 좋습니다.


답변

이전 게시물. 하지만 여전히 대답하고 싶습니다. Web Workers (javascript)로 작업하는 동안 직면 한 차이점

웹 작업자는 UI 수준의 액세스 권한을 가질 수 없습니다. 즉, 웹 작업자를 사용하여 실행하려는 JavaScript 코드에서 DOM 요소에 액세스 할 수 없으며, 웹 작업자 코드에서 창, 문서 및 부모와 같은 개체에 액세스 할 수 없습니다.

우리가 알고 있듯이 jQuery 라이브러리는 HTML DOM에 연결되어 있으며이를 허용하면 “DOM 액세스 금지”규칙을 위반하게됩니다. 웹 워커 에서는 jQuery.ajax, jQuery.post, jQuery.get 과 같은 메소드를 사용할 수 없기 때문에 다소 고통 스러울 수 있습니다 . 다행히도 XMLHttpRequest 객체를 사용하여 Ajax 요청을 할 수 있습니다
.


답변

마찬가지로 지금까지의 jQuery 방법은 이동로 .post.get간단하게 할 .ajax내부적으로, 그 목적은 추상적으로 떨어져 일부 불필요한 옵션입니다 .ajax일부 기본값은 각각 요청의 유형에 적합한 제공합니다.

3 개 중 어느 것이나 성능에 큰 차이가 있는지 의심합니다.

.ajax메서드 자체는 XMLHttpRequest를 수행하며 나머지 jQuery에 따라 크게 최적화되지만 전체 상호 작용을 직접 조정 한 것처럼 효율적이지 않을 수 있습니다.하지만 이것이 많은 코드 작성 또는 쓰기 jQuery.ajax.


답변