2009-05-14 4 views
5

를 주입하는 것은, 우리가 HTTPAsyncRquest를 새로 고치지 않고 웹 페이지를 업데이트를 사용하려면 다음 두 가지 방법을 생각 해보자 대) AsyncRequest에 의해 반환 된 데이터는 페이지 을 업데이트하는 결과 HTML을 작성하기 위해 구문 분석되거나 해석됩니다. JSON :: parseAndExecute (returnedData);// 그냥 예제아약스 :</p> <p>1 : 건물의 HTML 토론을 생성하지 질문을 묻는 StackOverflow의의 제안을 준수하려고 노력하는 HTML

2) AsyncRequest에 의해 반환 된 데이터는 실행되는 원시 jScript이며 페이지가 업데이트됩니다. 예 : 일반 old : eval (returnedData); // 우리가 알고있는 returnedData는 악의적 인 코드가 아닙니다.

학계/환경 설정 문제를 배제하기 위해 서버와 클라이언트를 모두 프로그래밍 할 때 동일한 프레임 워크를 사용한다고 가정합니다. 유일한 차이점은 만들 옵션/플래그가 있다는 점입니다 그것은 JSON 또는 raw jscript를 내 보낸다.

그런 시나리오에서 어느 쪽을 선호해야하는지 기술적 인 이유가 있습니까?

원시 JSCRIPT는 대부분의 경우 더 빠르고 유연해야하지만 내가 찾은 대부분의 프레임 워크는 JSCRIPT를 반환하지 않고 대신 JSCRIPT에 의해 해석되는 데이터이기 때문에이 질문을드립니다.

는 (그냥 명확히 : 내가 부탁 해요이 작은 빠른 보안 위험이 있습니다 compatiblity 위험????)

첫 번째 게시물을 유래로, 너희를!

+0

첫 번째 upvote 당신, 너희! 좋은 질문. :-) – Cerebrus

답변

1

두 번째 솔루션은 일반적으로 더 빠르고 구현하기 쉽고 대역폭을 덜 사용합니다. 그리고 서버 측과 클라이언트 측을 모두 제어한다면 Ajax 프레임 워크이면 보안은 문제가되지 않습니다. 그래서 당신의 유일한 문제는 당신이 (사악한) 평가로 끝나는 것입니다. IE8을 제외하고는 코드에서 적어도 하나의 평가판을 사용하지 않고 JSON을 "구문 분석"할 수있는 방법이 없으므로 항상 어느 것이 있어야합니다.

우리는 Ajax 엔진을 위해 JSON과 HTML (모든 실질적인 관심사에 대해 innerHTML)을 조합하여 사용합니다 (Ra-Ajax). 우리는 JSON을 사용하여 위젯의 속성을 속성으로 변경하고, 위젯에서는 초기 렌더링 (또는 전체 업데이트)시 innerHTML을 사용합니다.

+0

Firefox 3에는 JSON 파서가 함께 제공됩니다. –

1

@Thomas 한센 :

빠르고 쉽게 어쩌면, 구현합니다. 그러나 왜 대역폭이 적게 사용되는지는 알 수 없습니다. 페이지가로드 된 자바 스크립트 코드가 캐싱되어 파싱 및 위젯 빌드 코드가 한 번만 다운로드되고 동적 인 내용은 순수한 JSON입니다.

다른 옵션의 GUI 콜백에 대한 응답으로 데이터를 변환/필터링하고 서버를 사용하지 않으려는 경우 첫 번째 옵션 (JSON)을 선호 할 수도 있습니다.

+0

글쎄, "구문 분석"에 대해 이야기 할 때 대부분의 사람들은 일반적으로 XML을 처리합니다. JSON보다 분명히 큰 것입니다 ... –

+0

그건 사실입니다. 각괄호 세금은 거의 모든 네트워크 요청에 많은 오버 헤드를 추가합니다. –