답변:
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()
마치 스티어링, 브레이크 등으로 자동차 전체를 만들어야하는 자동차 엔진을 직접 구입할 수있는 것과 같습니다. 자동차 제조업체는 친숙한 인터페이스 (페달, 스티어링 휠 등)를 사용하여 완성 된 자동차를 생산합니다. 그래서 당신이 모든 것을 스스로 할 필요가 없습니다.
$.post
하고 $.get
더 느린 유일한 것은 $.ajax
호출 되기 전에 적은 양의 코드 입니다. 그러나 XHR을 사용하여 직접 루틴을 작성한다면 약간 최적화 될 수 있지만 버그가 더 많을 수 있습니다. jQuery쪽에 머무르는 것이 좋습니다. 그것은 당신의 삶을 더 쉽게 만들 것입니다. 그리고 비동기 호출이 코드를 발행하는 것보다 훨씬 오래 걸린다는 사실을 고려하면 이러한 호출 사이에 명백한 차이가 없음을 알 수 있습니다.
$.ajax
원하는 경우 어디에서나 일관된 통화 를 할 수 있습니다. XHR을 직접 사용하지 않는 한 어느 쪽이든 사용하는 것이 좋습니다.
각각은 XMLHttpRequest를 사용합니다. 이것이 브라우저가 요청을 만드는 데 사용하는 것입니다. jQuery는 JavaScript 라이브러리 일 뿐이며 $ .ajax 메서드는 XMLHttpRequest를 만드는 데 사용됩니다.
$ .post 및 $ .get 은 $.ajax
. 그들은 거의 같은 일을하지만 AJAX 요청을 더 빠르게 작성합니다 $.post
. HTTP POST 요청을 $.get
만들고 HTTP GET 요청을합니다.
GET
클라이언트 / 서버 (에 의해 제한 될 수있다 - 요청 URL 문자열에있는 모든 데이터를 보내드립니다 stackoverflow.com/questions/2659952/...을 ). POST
의 URL 크기 제한은 문제가되지 않습니다 그래서 요청, 헤더에있는 모든 데이터를 전송 (당신이하지 않으면 정말 긴 파일과 스크립트에 폴더 이름을!).
GET
. 무언가를 보내려면 (예 : 트윗 게시) 다음을 사용하십시오 POST
.
jQuery.get
에 대한 래퍼입니다 jQuery.ajax
XMLHttpRequest의에 대한 래퍼입니다.
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
.