jQuery가없는 바닐라 ajax에 대한 가이드
.
바닐라 Ajax는 유연하고 현대적인 프론트 엔드 API를 제공합니다. 요청 헤더를 설정하고 서버에서 예상되는 응답 유형을 지정하고 브라우저 캐시를 파열시킬 수 있습니다. Ajax는 한때 복잡한 프로세스 였지만 더 간단하고 사용자 친화적이되었습니다.
-
여기서, 우리는 서버에 HTTP 요청을하기 위해 필요한 클래스의 인스턴스를 만들고 있습니다. 그런 다음 HTTP 요청 메소드를 첫 번째 매개 변수로 지정하여 두 번째로 요청하는 페이지의 URL을 지정합니다. 마지막으로, 우리는 NULL을 전달하는 Send 메소드를 매개 변수로 호출합니다. 요청을 게시하는 경우 (여기서 GET를 사용하고 있음)이 매개 변수는 요청과 함께 보내려는 데이터가 포함되어야합니다. 그리고 이것이 서버의 응답을 다루는 방법입니다. -
Ajax의 기본 사항에 대해 더 많이 배우고 자하는 사람들을 위해 MDN 네트워크에는 좋은 안내서가 있습니다. jQuery에게 jQuery가 아닌가? 그래서 좋은 소식은 위의 코드가 모든 최신 주요 브라우저에서 작동한다는 것입니다. 나쁜 소식은 꽤 복잡하다는 것입니다. 왝! 나는 이미 우아한 솔루션을 고정시키고 있습니다. -
<.> 좋은. 그리고 실제로 당신을 포함하여 많은 사람들에게 jQuery는 Ajax와 관련하여 사실상의 표준이되었습니다. 그러나, 당신은 무엇을합니까? 이것은 사실 일 필요가 없습니다. jQuery는 못생긴 DOM API를 돌아 다니기 위해 존재합니다. 그러나 그것은 정말로
추악한가? 아니면 이해할 수 없습니까?
.
렌더링 함수는 요청 된 파일의 내용을 비동기로 읽습니다. Httphandler 함수에 대한 참조가 전달되어 콜백으로 실행됩니다. httphandler 함수는 오류 객체가 있는지 확인합니다 (예 : 요청 된 파일을 열 수없는 경우). 모든 것을 제공하는 것이 좋습니다. 그런 다음 적절한 HTTP 상태 코드 및 콘텐츠 유형으로 파일의 내용을 제공합니다.
api 테스트
사운드 백엔드 API와 같은 경우 몇 가지 단위 테스트를 작성하여 작동하는지 확인해 봅시다. 이 테스트를 위해, 나는 Supertest와 Mocha를 도와주기 위해 전화를 걸고 있습니다 : .
이 앱은 올바른 컨텐츠 유형 및 HTTP 상태 코드로 다른 요청에 응답하도록합니다. 종속성을 설치 한 후에는 NPM 테스트를 사용하여 명령 에서이 테스트를 실행할 수 있습니다.
인터페이스
이제 html에서 구축하는 사용자 인터페이스를 살펴 보겠습니다 :
var xhr = new XMLHttpRequest();
xhr.open('GET', 'send-ajax-data.php');
xhr.send(null);
로그인 후 복사로그인 후 복사로그인 후 복사
HTML은 멋지고 깔끔해 보입니다. 보시다시피, 모든 흥분은 JavaScript에서 일어나고 있습니다. Onreadystate vs onload
표준 Ajax 책을 살펴보면 어디에서나 onreadystate를 찾을 수 있습니다. 이 콜백 기능에는 중첩 된 IFS와 많은 보풀이있어 머리 꼭대기에서 기억하기가 어렵습니다. OnreadyState 및 Onload Events를 헤드로 올리 봅시다.
.
var xhr = new XMLHttpRequest(); xhr.open('GET', 'send-ajax-data.php'); xhr.send(null);
var xhr = new XMLHttpRequest(); xhr.open('GET', 'send-ajax-data.php'); xhr.send(null);
가 에 성공할 때만 발생합니다. 따라서 OnLoad 이벤트는 몇 초 만에 잘 활용할 수있는 최신 API입니다. OnreadyState 이벤트는 거꾸로 호환됩니다. 그러나 Onload 이벤트는 선택 도구 여야합니다. Onload 이벤트는 jQuery의 성공 콜백처럼 보입니다.
var xhr = new XMLHttpRequest(); xhr.open('GET', 'send-ajax-data.php'); xhr.send(null);
타다! 드라마가없는 모든 것.
xhr.onreadystatechange = function () { var DONE = 4; // readyState 4 means the request is done. var OK = 200; // status 200 is a successful return. if (xhr.readyState === DONE) { if (xhr.status === OK) { console.log(xhr.responseText); // 'This is the returned text.' } else { console.log('Error: ' + xhr.status); // An error occurred during the request. } } };
$.ajax({ url: 'send-ajax-data.php', }) .done(function(res) { console.log(res); }) .fail(function(err) { console.log('Error: ' + err.status); });
바닐라 ajax는 jQuery 라이브러리에 의존하지 않고 비동기 웹 애플리케이션을 생성하기 위해 기본 JavaScript를 사용하는 것을 말합니다. JQuery Ajax는 Ajax를 처리하기위한 단순화 된 크로스 브라우저 호환 방법을 제공하지만 Vanilla Ajax는 기본 프로세스에 대한 더 많은 제어 및 이해를 제공합니다. jQuery와 같은 외부 라이브러리의 종속성을 줄이려면 훌륭한 옵션입니다.
바닐라 JavaScript를 사용하여 기본 ajax 요청을 만드는 것은 xmlhttprequest 객체를 사용하는 것과 관련이 있습니다. 이 개체를 사용하면 HTTP 또는 HTTPS 요청을 웹 서버로 보내고 서버 응답 데이터를 스크립트에 다시로드 할 수 있습니다. 간단한 예는 다음과 같습니다.
var xhr = new xmlhttprequest (); xhr.onreadyStateChange = function () {
if (xhr.readystate == 4 && xhr.status == 200)
}
바닐라 ajax에서 오류를 어떻게 처리 할 수 있습니까?
var xhr = new xmlhttprequest (); xhr .onerRor = function () {
console.log ( "request 실패 "); };
xhr.send ();
예, 사후 요청에 바닐라 ajax를 사용할 수 있습니다. xmlhttprequest 객체의 열린 메소드는 HTTP 메소드를 첫 번째 인수로 받아들입니다. 따라서 "Get"을 "Post"로 바꿀 수 있습니다. 요청을 보내기 전에 setRequestheader 메소드를 사용하여 컨텐츠 유형 헤더를 설정하는 것을 잊지 마십시오.
게시물에서 JSON 데이터를 보내려면 Vanilla Ajax를 사용하여 게시물 요청에서 JSON 데이터를 보낼 수 있습니까? 요청에 따라 JSON 객체를 stringifor하고 요청 본문으로 보내야합니다. 또한 컨텐츠 유형 헤더를 Application/JSON으로 설정하십시오. 예는 다음과 같습니다.
var xhr = new xmlhttprequest (); xhr .SetRequestHeader ( "Content-Type", "application/json"); xhr.send (json.stringify ({key : "value"}));
바닐라 JavaScript에서 Ajax 요청을 어떻게 취소 할 수 있습니까?
XMLHTTPREQUEST 객체의 ABORT 메소드를 호출하여 AJAX 요청을 취소 할 수 있습니다. 이것은 즉시 요청이 종료됩니다.
바닐라 JavaScript를 사용하여 동기식 Ajax 요청을 만들 수 있습니까?
예, 스크립트 실행을 차단하고 웹 페이지를 응답하지 않도록 권장하지 않습니다. . 동기식 요청을하려면 열린 메소드에 세 번째 인수로 False를 전달하십시오.
Ajax 요청의 진행 상황을 모니터링 할 수 있습니다. XMLHTTPREQUEST 객체의 ONPROGRESS 이벤트 처리기. 이 이벤트는 현재 진행 상황 정보를 제공하여 여러 번 트리거됩니다.
다른 JavaScript 라이브러리 또는 프레임 워크와 함께 Vanilla Ajax를 사용할 수 있습니까?예, Vanilla Ajax는 JavaScript 라이브러리 또는 프레임 워크와 함께 사용할 수 있습니다. . 기본 JavaScript 기능이며 외부 라이브러리에 의존하지 않습니다.
xmlhttprequest 객체를 사용하여 모든 브라우저에서 모든 브라우저에서 지원되는 바닐라 ajax는 모든 최신 브라우저에서 지원됩니다. 그러나 이전 버전의 Internet Explorer (예 : 6 이상)는 Ajax에 ActiveX 객체를 사용합니다.위 내용은 jQuery가없는 바닐라 ajax에 대한 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 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)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

동일한 ID로 배열 요소를 JavaScript의 하나의 객체로 병합하는 방법은 무엇입니까? 데이터를 처리 할 때 종종 동일한 ID를 가질 필요가 있습니다 ...

Console.log 출력의 차이의 근본 원인에 대한 심층적 인 논의. 이 기사에서는 Console.log 함수의 출력 결과의 차이점을 코드에서 분석하고 그에 따른 이유를 설명합니다. � ...
