숨겨진 AJAX 요청은 무엇입니까?
사용자의 작업이 즉시 발생하도록 설계된 숨겨진 AJAX 요청의 사용이 증가한 것으로 나타났습니다. 이 유형의 AJAX 요청을 비 블로킹이라고합니다. 사용자가 발생하고 있음을 인식하지 않고 AJAX 요청이며 백그라운드에서 수행되며 작업이 조용합니다 ( AJAX 호출이 성공적으로 완료되었음을 나타내는 자세한 내용은 없습니다 ). 목표는 작업이 실제로 완료되지 않았을 때 즉시 발생했음을 표시하는 것입니다.
다음은 비 차단 AJAX 요청의 예입니다.
- 사용자는 이메일 모음에서 삭제를 클릭합니다. 항목이받은 편지함에서 즉시 사라지고 다른 작업을 계속할 수 있습니다. 한편 AJAX 요청은 백그라운드에서 항목 삭제를 처리 중입니다.
- 사용자는 새 레코드 양식을 작성합니다. 저장을 클릭하십시오. 새 항목이 목록에 즉시 나타납니다. 사용자는 계속 새 레코드를 추가 할 수 있습니다.
명확히하기 위해 AJAX 요청을 차단하는 예가 있습니다.
- 사용자는 이메일 모음에서 삭제를 클릭합니다. 모래 시계 커서가 나타납니다. AJAX 요청이 이루어지고 응답 할 때 모래 시계 커서가 꺼집니다. 사용자는 작업이 완료 될 때까지 잠시 기다려야합니다.
- 사용자는 새 레코드 양식을 작성합니다. 저장을 클릭하십시오. AJAX 로더 애니메이션이 적용되면 양식이 회색으로 바뀝니다. "데이터가 저장되었습니다"라는 메시지가 표시되고 새 레코드가 목록에 나타납니다.
위의 두 시나리오의 차이점은 비 차단 AJAX 설정은 운영 수행에 대한 피드백을 제공하지 않으며 차단 AJAX 설정은 그렇지 않다는 것입니다.
숨겨진 AJAX 요청의 위험
이 스타일의 AJAX 요청의 가장 큰 위험은 AJAX 요청이 실패하면 웹 애플리케이션이 완전히 다른 상태에있을 수 있다는 것입니다.
예를 들어, 비 차단 예;
- 사용자는 많은 이메일을 선택합니다. 삭제 버튼을 클릭하십시오. 작업이 즉시 발생하는 것처럼 보입니다 (항목이 목록에서 사라짐). 그런 다음 사용자는 편지 쓰기 버튼을 클릭하고 새 이메일을 입력하기 시작합니다. 현재 JavaScript 코드가 AJAX 요청이 실패했음을 발견했습니다. 스크립트가 오류 메시지를 표시 할 수 있지만 현재로서는 의미가 없습니다.
대안 적으로, 차단 예;
- 사용자는 많은 이메일을 선택합니다. 삭제 버튼을 클릭하십시오. 모래 시계가 보이지만 작동하지 않습니다. "error. blah blah blah"라는 오류 메시지가 나타납니다. 이메일 목록으로 되돌아 가고 삭제하려는 이메일이 여전히 선택되어 있습니다. 다시 삭제를 시도 할 수 있습니다.
비 차단 AJAX 요청을 수행 할 때 다른 기술적 위험도 있습니다. 사용자는 브라우저를 닫고 다른 웹 사이트로 이동할 수 있으며 현재 웹의 다른 위치로 이동하여 오류 응답의 컨텍스트를 무의미하게 만들 수 있습니다.
그렇다면 왜 그렇게 인기가 있습니까?
Facebook, Google, Microsoft 등.이 모든 대형 도메인은 비 차단 AJAX 요청을 점점 더 많이 사용하여 작업 이 즉각적으로 수행되는 것처럼 보이게 합니다. 또한 저장 또는 제출 버튼 이 없는 양식 편집기가 증가했습니다 . 필드를 떠나거나 Enter 키를 누르 자마자. 값이 저장됩니다. 어떤이 프로필이 업데이트되었습니다 메시지 또는 저장하는 단계.
AJAX 요청은 확실하지 않으며 완료 될 때까지 성공한 것으로 취급해서는 안되지만 많은 주요 웹 응용 프로그램이 그렇게 작동합니다.
비 차단 AJAX 호출을 사용하여 반응 형 응용 프로그램을 시뮬레이션하는 웹 사이트가 빠른 비용으로 불필요한 위험을 감수합니까?
이것이 경쟁력을 유지하기 위해 우리가 따라야하는 디자인 패턴입니까?