2012-09-12 5 views
-1

두 가지 시나리오가 있습니다.JavaScript, JSON 또는 SOAP 구문 분석이 더 빠릅니다.

  1. 것은 우리는 다시 응답을 받고 데이터를 분석하고 드롭 다운 목록을 작성하기 위해 XPath를 사용하여 WCF SOAP 서비스로 전송, XMLHttpRequest를 가진 수동 내장 XML 비누 요청을 사용하고 있습니다.

  2. 우리는 서비스 WCF 휴식에 JSON 요청을 보내고 다시 JSON 응답을 받고 시나리오는

빠른 드롭 다운 목록에 값을 할당하는? 내 감각은 # 2라고하지만 틀릴 수도 있습니다.

+3

브라우저 내에서 처리 시간으로 훨씬 더 빨리 멀리 실제로 것을 발견하지만, 왜 추측 대신 측정하지? – Hamish

+1

JSON이 더 빨라질 것입니다. 어느 형식도 구문 분석하기가 어렵지 만, 단순한 JavaScript 객체보다 XML을 사용하고 DOM을 구축하는 것이 훨씬 더 중요합니다. 그러나 그것은 단지 직감이다. – Pointy

+1

각 파싱에 사용할 라이브러리의 의존성. JSON은 개발자에게 가장 편하고, 무엇보다도 웹 서비스를 웹 서비스에 추가 작업없이 사용할 수 있다고 생각합니다. –

답변

1

내 시나리오에서 프로파일 링 후, 나는 JSON 내가 옵션 2가 더 빠른 것으로 기대

+0

JS 구현을 사용 하시겠습니까? 그리고 어떤 파서? –

+1

예상대로. 거의 모든 브라우저 공급 업체가 Javascript 엔진을 최적화하고 JSON을 지원하는 데 대부분의 시간을 투자했습니다. 구형 브라우저에서 이것을 테스트 할 때 다른 결과가 나타날 수 있지만 최신 브라우저에서는 이것이 예상됩니다. +1 테스트. – GolezTrol

5

Json은 본질적으로 Javascript이므로 더 빠릅니다. 그러나 이것이 주요 동기가되어서는 안됩니다. 데이터를 파싱하는 것은 어쨌든 응용 프로그램의 일부일뿐입니다.

반면에 브라우저는 XML을 구문 분석 할 수 있도록 잘 훈련되어 있습니다.

가장 큰 차이점은 XML과 그로 인한 SOAP은 클라이언트에 전송하기에 더 크기 때문에 전송은 구문 분석보다 큰 속도 저하 일 수 있습니다.

어쨌든, 알고 싶다면 추측하거나 묻지 말고 테스트하고 프로파일 링해야합니다.

+0

항상 그렇지는 않습니다. 직렬화/비 직렬화 메커니즘에 따라 다릅니다. OP에 사용되는 WCF는 실제로 JSON을 내부 XML 표현으로 직렬화하여 클라이언트에 전달하기 전에 사용됩니다. –

+0

JSON은 UTF-8 문자 인코딩 요구 사항을 충족하는 바이너리 데이터입니다. UTF-8 문자가 JavaScript 데이터로 변환되기 전에 유효한 JSON인지 확인하기 위해서는 여전히 구문 분석이 필요합니다. 신텍스는 자바 스크립트의 리터럴 표기법과 비슷하지만 "본질적으로 자바 스크립트"라고 말하는 것이 좋습니다. –

+0

될 수는 있지만 전송이나 구문 분석에는 영향을 미치지 않습니다. 그런데 WCF가 먼저 JSON에서 그리고 나서 XML로 데이터를 인코딩 할 것인지에 대해서는 의심 스럽습니다. 내부 데이터 구조를 JSON 또는 XML로 내보낼 가능성이 높습니다. – GolezTrol

2

옵션 2는 일반적으로 옵션 1보다 빠릅니다. JSON은 XML보다 훨씬 간단합니다.

그러나 구문 분석이 빠르면 실제로 사용하면 안되며 간단한 문자열 연산을 사용하여 구문 분석하는 데 사용자 지정 형식을 사용해야합니다. 예를 들어 쉼표로 구분 된 문자열은 split(',')으로 구문 분석 할 수 있습니다.

+1

왜 downvote? 잘못이라고 생각하는 것을 설명하지 않으면 대답을 향상시킬 수 없습니다. – Guffa

+1

넌센스. JSON과 XML은 매우 최적화 된 브라우저 기능을 사용하여 파싱 할 수 있습니다. Javascript로 파서를 작성하려고 시도해서는 안된다. 게다가, 의사 소통은 일반적이고 용서하는 형식을 사용하여 이루어져야합니다. XML과 JSON은 모두 통신 목적으로 설계되었으며 일부 사용자 정의 형식보다 선호해야합니다. – GolezTrol

+0

그것이 이유입니다. 죄송합니다. 작성하는 데 몇 초가 걸렸지 만 왜 내가 잘못 생각하는지 자세히 설명하지 않으면 답변을 개선하고 싶지 않을 수 있습니다. – GolezTrol

관련 문제