2009-02-05 4 views
5

저는 Ajax를 읽고 있었고 모든 것을 올바르게 이해하고 있다면 stackoverflow 커뮤니티에서보고 싶습니다.Ajax를 올바르게 이해하고 있습니까?

일반 클라이언트 서버와의 상호 작용은 사용자가 웹 브라우저에서 URL을 입력하고 HTTP 요청이 웹 서버에서 페이지 및 리소스 (css, pics)를 요청하는 서버로 전송됩니다. 웹 서버는 요청 된 페이지/리소스를 HTTP를 통해 클라이언트에 응답하고 브라우저는 사용자가 페이지를 볼 수 있도록 HTML/JavaScript를 렌더링합니다.

1) 그렇다면 XMLHttpRequest (XHR) 객체가 브라우저와 동일한 프로세스를 수행하고 있다는 것을 말하는 것이 안전할까요? 서버에서 HTML을 요청하지 않는 것, 일부 형식의 텍스트를 요청하는 텍스트?

2) XHR 개체는 개체를 만드는 프로그램에서 조작 할 수있는 일반 개체와 매우 유사하지만 다른 프로그램 (웹 서버)과 데이터를주고받습니다. HTTP?

3) XHR이 만들어지면 메모리에로드되고 request.open ("GET", url, true)을 수행 할 때 객체 인수가 설정됩니다. request.send (null)을하면 개체는 기본적으로 HTTP를 통해 URL을 "가져 오"려고 시도하고 서버에서 데이터를 얻으면 responseText 인수에 넣습니다. 내가 이것을 정확히 이해하고 있는가?

4) 동기식 또는 비동기식. 동기를 생각할 때 순서대로 따라야한다고 생각합니다. 예를 들어 버튼을 누르고 데이터가 서버로 전송되면 다른 작업을 수행하기 전에 데이터가 돌아올 때까지 기다려야합니다. 비동기 연결을 사용하면 버튼을 누르고 데이터는 서버로 전송되고 데이터는 다시 전송되는 동안 원하는 작업을 수행합니다. 이것은 좋은 비유입니까?

답변

7

1) 아니오. XMLHttpRequest 객체는 이름에서 알 수있는 것과 정확히 일치합니다. 즉, HTTP 요청을 시작합니다. 이 요청은 XML, HTML 또는 PHP로 가능합니다. 하루가 끝나면 브라우저는 AJAX 요청에서 요청을 구문 분석하지 않기 때문에 상관하지 않습니다. 직접 해봐야합니다. 따라서 AJAX 요청에서 HTML을 자동으로 렌더링하지는 않습니다.

2) (XHR 개체는 변경되지 않을 수도 있지만) 조작 가능성은 확실하지만 가능합니다. 그것을 확장하거나 조작해야합니까? 예, 개체의 속성 등을 변경할 수 있습니다. 사과드립니다. 나는 처음에 너를 이해하지 못했다.

3) 그래.

4) 위대한 비유입니다. 그것은 정확히 무슨 일이 일어나는가입니다. 또 다른 비유는 4 차선 고속도로가 일방 통행과 비동기로 연결된다는 것입니다. 한 차가 4 차선 고속도로에서 고장 나면 나머지는 정상 속도로 계속 움직일 수 있습니다. 그러나 일방 통행로에서 고장이 나면 모든 것이 멈 춥니 다. :)

+0

내가 XHR 단지 의미 속성을 설정 및 개체에 대한 호출 방법을 조작 생각합니다. – andynormancx

+0

내가 본 대부분의 일방 통행로는 다중 차선입니다. :) –

0

AJAX 작동 방식에 대한 직업 파악이있는 것으로 보입니다. AJAX 응용 프로그램의 배관에 대한 요약에 동의 할 것이 많이 없습니다.

그러나 XMLHttpRequest 객체를 사용하면 GET으로 제한되지 않는다고 말할 수 있습니다. POST 및 기타 HTTP 동사를 사용할 수도 있습니다.

비동기 호출을 사용하여 콜백 함수를 등록하면 XMLHttpRequest 객체는 비동기 요청이 완료되면 메서드를 호출합니다.

0

나에게 잘 보 인다.

첫 번째 요점은 완전히 정확하지 않지만, ajax를 사용하여 서버에서 html을 요청할 수 있습니다. 대부분의 예제처럼 text, json 또는 xml이 필요하지 않습니다. 여기

관련 문제