Ajax는 기본적으로 비동기식 요청인가요?

WBOY
풀어 주다: 2022-07-01 16:59:49
원래의
3334명이 탐색했습니다.

ajax는 기본적으로 비동기 요청입니다. ajax에서는 async 값을 기반으로 비동기 요청인지 여부를 확인할 수 있습니다. async 값이 false이면 ajax 요청이 동기임을 의미합니다. , 이는 ajax 요청이 비동기식이며 기본적으로 async 값이 "true"이므로 ajax는 기본적으로 비동기식 요청임을 의미합니다.

Ajax는 기본적으로 비동기식 요청인가요?

이 기사의 운영 환경: windows10 시스템, javascript1.8.5&&html5 버전, Dell G3 컴퓨터.

Ajax는 기본적으로 비동기식인가요?

ajax는 기본적으로 비동기적으로 제출됩니다.

AJAX는 서로 다른 async 값에 따라 동기식 "false"와 비동기식 "true"로 구분되며 기본적으로 async 값은 true입니다( 비동기 제출) . 이것의 장점은 부분 새로 고침을 통해 사용자 경험을 향상시키는 동시에 리소스를 절약하고 데이터베이스에 대한 부담을 줄일 수 있다는 것입니다.

ajax는 기본적으로 비동기 요청, 즉 async:true입니다. 매개변수 asycn:false

$.ajax({ url: 'www.test.com/test/test', type: 'POST', data: {name:"test"} async: false, error: function() { console.log('error'); }, success: function(resp) { console.log('success'); } });
로그인 후 복사

를 설정하여 동기식으로 만들 수 있습니다. 참고: 이런 종류의 작업이 있는 경우. ajax를 호출하기 전에 flag = false;를 작성했지만 ajax의 성공 콜백에서 flag = true를 설정하는 것과 같은 작업은 ajax의 비동기 상태에서 원하는 결과를 얻을 수 없습니다.

ajax는 기본적으로 비동기식이므로 후속 작업을 완료한 후 콜백 플래그 = true 작업을 실행할 수 있습니다! !

확장된 지식:

AJAX는 동기 요청을 어떻게 구현합니까?

Ajax 요청은 동기식 요청과 비동기식 요청으로 나뉘는데, 기본적으로 비동기식 요청을 사용하는데, Ajax를 사용하여 동기식으로 요청하려면 이 동기식 요청을 어떻게 구현해야 할까요? 다음 글에서는 Ajax 동기화 요청 구현에 대해 소개하겠습니다. 도움이 필요한 친구들이 참고하시면 좋겠습니다.

먼저 동기화는 단일 스레드이며 코드가 순차적으로 실행된다는 점을 알아야 합니다. js 코드가 현재 동기식 ajax 요청에 로드되면 페이지의 다른 모든 코드가 로드를 중지하고 페이지가 종료됩니다. 요청 전까지 애니메이션이 정지된 상태입니다. 실행이 완료된 후 다른 요청이 실행됩니다.

둘째, ajax는 async 값에 따라 동기식과 비동기식의 두 가지 요청 방식으로 구분된다는 점을 알아야 합니다. async 값이 true이면 비동기식 요청 방식입니다. false인 경우 동기 요청 방식이므로 ajax 동기화 요청을 구현하려면 async 값을 false로 설정하기만 하면 됩니다.

$.ajax( type:“POST”/“GET” url:"", data:{}, dataType:"json", async:false, //同步 success:function(response){ } );
로그인 후 복사

Ajax 동기 요청과 비동기 요청의 차이점은 무엇이며 사용 시나리오는 무엇입니까?

이해 1:

AJAX는 W3C 튜토리얼에서 비동기 실행을 권장하는 방식에 따라 동기(async = false)와 비동기(async = true)의 두 가지 실행 방법으로 나뉩니다. 동기화와 비동기성의 차이점을 구별해 보겠습니다.

비동기: 비동기 모드에서는 AJAX를 사용하여 요청을 보낸 후 실행해야 할 코드가 있을 수 있습니다. 현재로서는 여러 가지 이유로 인해 서버가 요청에 응답하지 않을 수 있지만 비동기 실행을 사용하기 때문에 AJAX 요청 코드가 포함된 모든 함수의 나머지 코드는 계속 실행됩니다. 처리를 위해 요청 결과를 다른 JS 함수에 넘겨주면 동시에 실행되는 두 개의 스레드와 같습니다.

동기화: 동기 모드에서는 AJAX를 사용하여 요청을 보낸 후에도 나중에 실행해야 하는 코드가 남아 있으며 처리를 위해 서버 응답을 다른 JS 함수에 넘겨주기도 하는데 현재의 코드 실행 상황입니다. is: on the server 응답이 없거나 응답 결과를 처리하는 JS 함수가 처리되어 반환되지 않은 경우 요청 코드가 포함된 함수의 나머지 코드를 실행할 수 없습니다. 단일 스레드와 마찬가지로 요청이 전송된 후 차단 상태에 들어가고 나머지 코드는 차단 상태에 도달할 때까지 계속 실행되지 않습니다.

동기 또는 비동기 모드를 선택하는 방법은 무엇입니까? 이 질문에 답하기 위해 다음과 같은 가능한 질문을 통해 답할 수 있습니다.

AJAX 요청을 보낸 후에도 비동기 요청 모드를 사용하고 처리를 넘겨주지 않으면 서버의 응답 결과를 계속 처리해야 합니다. 결과는 다른 JS 함수에 의해 처리됩니다. 이때 다음과 같은 상황이 발생할 수 있습니다. 비동기 요청에 대한 응답이 아직 도착하지 않았고 함수가 return 문 실행을 완료하여 반환 결과가 빈 문자열이 됩니다.

이해 2:

동기화: 요청을 보내고 반환을 기다린 후 다음 요청을 보냅니다.

비동기: 요청을 보내고 반환을 기다리지 않으며 언제든지 다음 요청을 보낼 수 있습니다.

동기화로 교착 상태 방지 가능 더티 데이터 읽기의 발생인 잠금은 일반적으로 특정 리소스를 공유할 때 사용됩니다. 모든 사람이 수정 권한을 갖고 동시에 파일을 수정하는 경우 한 사람이 다른 사람이 내용을 읽을 수 있습니다. 사람이 삭제되어 오류가 발생하게 됩니다. 동기화 순서대로 수정됩니다.

비동기식은 효율성을 향상시킬 수 있습니다. 요즘 CPU는 비동기식으로 처리하는 경우 여러 작업을 동시에 수행할 수 있는지 확인해야 합니다.

동기식과 비동기식의 가장 큰 차이점은 다음과 같습니다. 기다려야 하지만 그렇지 않습니다.

예를 들어 문자 메시지 보내기는 비동기식 예입니다. 개시자는 수신자의 상태에 관심이 없습니다. 수신자로부터 정보 반환을 기다릴 필요가 없으며 다음 전송이 수행될 수 있습니다.

전화는 동기화의 예입니다. 개시자는 수신자를 기다려야 하며 통화가 연결될 때까지 통신은 시작되지 않습니다. 수신자로부터 정보가 반환될 때까지 기다려야 합니다

그리고 우리가 자주 논의하는 동기화 문제는 대부분 멀티 스레드 환경의 데이터 공유 문제에서 발생합니다. 즉, 여러 스레드가 동일한 리소스에 액세스해야 하는 경우 특정 순간에 하나의 스레드만 리소스에 액세스할 수 있도록 특정 순서를 따라야 합니다. 비동기식을 사용하는 경우 프로그램 실행 결과는 다음과 같습니다. 예측할 수 없습니다. 따라서 이 경우 데이터를 동기화해야 합니다. 즉, 하나의 프로세스만 리소스에 액세스할 수 있고 다른 스레드는 기다려야 합니다.

동기화를 달성하는 메커니즘에는 주로 임계 섹션, 뮤텍스, 세마포어 및 이벤트가 포함됩니다.

중요 섹션: 다중 스레드 직렬화를 통해 공용 리소스 또는 코드 조각에 액세스합니다. 이는 빠르고 데이터 액세스 제어에 적합합니다. 언제든지 하나의 스레드만 공유 리소스에 액세스할 수 있습니다. 여러 스레드가 공용 리소스에 액세스하려고 하면 하나의 스레드가 들어간 후 공용 리소스에 액세스하려는 다른 스레드가 일시 중지되고 스레드가 떠난 후 임계 영역에 들어갈 때까지 기다립니다. 임계 섹션이 해제되면 다른 스레드가 이를 선점할 수 있습니다.

Mutex: 뮤텍스 개체 메커니즘을 채택합니다. 상호 배타적인 개체를 소유한 스레드만 공용 리소스에 액세스할 수 있는 권한을 갖습니다. 상호 배타적인 개체가 하나만 있기 때문에 여러 스레드가 동시에 공용 리소스에 액세스하지 않도록 보장됩니다. Mutex는 동일한 애플리케이션의 공용 리소스의 안전한 공유를 실현할 수 있을 뿐만 아니라 다른 애플리케이션의 공용 리소스의 안전한 공유도 실현할 수 있습니다. Mutex는 중요한 섹션보다 더 복잡합니다. 상호 배제를 사용하면 동일한 애플리케이션의 서로 다른 스레드 간에 리소스를 안전하게 공유할 수 있을 뿐만 아니라 서로 다른 애플리케이션의 스레드 간에 리소스를 안전하게 공유할 수도 있기 때문입니다.

세마포어: 여러 스레드가 동시에 동일한 리소스에 액세스할 수 있지만 동시에 이 리소스에 액세스할 수 있는 최대 스레드 수를 제한해야 합니다. 세마포어 객체가 스레드를 동기화하는 방법은 이전 방법과 다릅니다. 신호를 통해 여러 스레드가 동시에 공유 리소스를 사용할 수 있으며 이는 운영 체제의 PV 작업과 동일합니다. 공유 자원에 동시에 접근할 수 있는 최대 스레드 수를 나타냅니다. 여러 스레드가 동시에 동일한 리소스에 액세스할 수 있지만 동시에 이 리소스에 액세스할 수 있는 최대 스레드 수를 제한해야 합니다.

이벤트: 알림 작업을 통해 스레드 동기화를 유지하고 여러 스레드의 우선순위 비교를 용이하게 합니다.

【관련 튜토리얼 추천:AJAX 동영상 튜토리얼

위 내용은 Ajax는 기본적으로 비동기식 요청인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!