위의 예제에서 두 줄은 이 예제에서는 엄격하게 필요하지 않습니다. Ajax 요청만 3-14줄의 Lua 코드를 트리거할 수 있도록 하는 추가 보안 조치일 뿐입니다. jQuery는 HTTP 헤더 “x-requested-with”를 추가하고 이 헤더를 확인하는 것은 Ajax 요청이 아닌 모든 요청을 필터링하는 편리한 방법입니다. AJAX를 사용하면 제출을 누르면 JavaScript가 서버에 요청을 하고 결과를 해석하고 현재 화면을 업데이트합니다. 가장 순수한 의미에서, 사용자는 아무것도 심지어 서버에 전송 된 것을 알지 못할 것이다. GET 메서드는 일반적으로 소량의 데이터를 서버에 보내는 데 사용됩니다. 반면 POST 메서드는 양식 데이터와 같은 많은 양의 데이터를 전송하는 데 사용됩니다. 이전 예제에서는 HTTP 요청에 대한 응답을 받은 후 test.html 파일의 내용을 포함하는 요청 개체의 responseText 속성을 사용했습니다. 이제 응답XML 속성을 시도해 보겠습니다. Ajax는 클라이언트가 모든 이벤트를 생성하는 책임이 있는 솔루션에 뛰어나지만 서버가 이벤트를 생성하는 경우 Ajax를 어떻게 사용합니까? 클라이언트가 서버에 요청을 보낼 때만 HTTP 요청이 열리므로 서버는 클라이언트에 알리는 방법이 없습니다.

이 문제를 해결하는 한 가지 방법은 Ajax를 사용하여 서버에서 새 데이터를 지속적으로 폴링하는 것입니다. 폴링 지연으로 인해 클라이언트의 이벤트 알림이 지연되므로 이상적인 솔루션은 아닙니다. 또한 불필요한 네트워크 트래픽을 생성하고 클라이언트가 폴링 요청을 보낼 때까지 이벤트 데이터를 버퍼링할 수 있도록 서버 측 코드를 설계해야 합니다. Facebook 또는 Gmail을 사용한 시간을 생각해 보시면 됩니다. 전체 페이지를 다시 로드하지 않고 작업을 수행했습니다. 예를 들어 같은 페이지에 있는 동안 즉시 게시하는 댓글을 남겼습니다. 이것이 바로 AJAX가 허용하는 것입니다! 함수 alertContents()는 3단계에서와 동일한 방식으로 작성하여 계산된 문자열에 경고할 수 있습니다. 그러나 서버가 계산된 문자열과 원래 사용자 데이터를 모두 반환한다고 가정해 보겠습니다. 따라서 사용자가 텍스트 상자에 “Jane”을 입력하면 서버의 응답은 다음과 같습니다: 통신 오류(예: 서버가 다운되는 경우)의 경우 응답 상태에 액세스할 때 onreadystatechange 메서드에 예외가 throw됩니다. 이 문제를 완화하기 위해 다음을 래핑할 수 있습니다.

다음 시도에서 문 … catch: 서버에 요청을 보내려면 XMLHttpRequest 개체의 open() 및 send() 메서드를 사용합니다. Ajax 요청은 일반적으로 비동기이므로 Ajax 요청이 전송되는 즉시 스크립트 실행이 계속되므로 서버 응답이 돌아올 때까지 브라우저가 스크립트 실행을 중지하지 않습니다. 동기 XMLHttpRequest (비동기 = false)는 서버 응답이 준비될 때까지 JavaScript실행이 중지되므로 권장되지 않습니다. 서버가 사용 중이거나 느린 경우 응용 프로그램이 중단하거나 중지됩니다. jQuery는 브라우저의 원시 XMLHTTPRequest API사용을 간소화하는 여러 가지 기능을 제공합니다. 이러한 기능 중 하나는 서버에 URL 인코딩 된 데이터를 전송 하 고 서버에서 응답 데이터로 JSON을 기대 하는 $.getJSON()입니다. 이 함수의 첫 번째 인수는 페이지 자체의 URL인 window.location입니다.

Categories: Sin categoría