2010-04-13 3 views
2

내 관심사는 성능입니다. 유효한 HTML 대신 클라이언트 XML을 보낼 이유가 있습니까? 대부분의 것들과 마찬가지로, 나는 그것이 응용에 의존적이라고 확신합니다. 내 구체적인 상황은 데이터베이스에서 가져온 웹 페이지에 삽입되는 실질적인 콘텐츠가있는 곳입니다.AJAX vs AAHAH 성능 이점이 있습니까?

두 방법의 장점은 무엇입니까? 콘텐츠의 크기가 큰 문제입니까? 또는 XML을 사용하는 경우 JavaScript를 시작하여 HTML을 전송하는 데 필요한 추가 시간을 XML에서 HTML 카운터 균형으로 처리해야 할 때입니까?

덕분에, 제프

+0

관련 항목 : http://stackoverflow.com/questions/1434657/should-i-learn-xml-and-javascript-before-learning-ajax/1434675 –

+0

비동기 html 및 html? – seanmonstar

답변

3

HTML을 가져 오는 경우에도 처리하지 않고 바로 DOM에 붙여서는 안된다는 점을 알아야합니다. 보안 프로토콜을 통해 전송되지 않으면 MITM 공격을받을 수 있습니다. XML 구문 분석을 저장하면 스크립트 삽입을 방지하기 위해 HTML을 살균하는 데 소비됩니다.

XML도 더 휴대 가능합니다.XML로 제공되는 데이터는 어느 페이지에서나 사용할 수 있습니다. 이 측면에서는 HTML이 다르지만 CSS로 스타일을 지정할 수는 있지만 모든 브라우저가 DOM에 내용을 삽입하지 않고 쉽게 파서를 사용할 수있는 것은 아닙니다. 일부 브라우저는 DOMDocument() 일 수 있지만 브라우저 간 용도로 사용할 수는 없습니다. XML을 사용하면 XPath를 사용하여 쉽게 원하는 데이터를 대상으로 추출 할 수 있습니다. HTML (x-browser)을 사용하면 먼저 DOM에 삽입하거나 사용하지 않아야 할 신뢰할 수없는 regexp 메소드를 사용해야합니다.

JSON은 가볍고 XML 및 HTML과 함께 제공되는 많은 부분을 없애줍니다. JavaScript 객체의 기본 마크 업이기 때문에 구문 분석이 매우 쉽습니다. XML 및 HTML과 달리 JSONP (JSON with Padding)를 사용하여 JSON 데이터 교차 도메인에 액세스 할 수도 있습니다.

요약하면 요구 사항에 가장 적합한 방법을 선택해야합니다. 요즘 사람들은 JSON을 사용하는 경향이 있습니다. 요즘에는 가벼운 무게와 크로스 도메인에 액세스 할 수 있으며 JavaScript로 파싱하기위한 노력이 거의 필요하지 않기 때문입니다.

+0

귀하의 보안 팁은 매우 유효한 우려이며 내가 생각하지 못했던 것입니다. 반면에 왜 XML, JSON 또는 그 밖의 다른 것들도 그렇게 할만한가? – Icode4food

+0

@LanguaFlash : 안전하지 않은 연결을 통해 전달 된 모든 데이터가 변조 될 수 있으며 XML과의 차이점은 JSON은 데이터가 정적이라는 것입니다. 즉, 액세스하기 위해 구문 분석해야하는 정보 일뿐입니다. HTML은 MITM 공격으로 악의적 인 스크립트를 포함하도록 HTML을 변경하면 DOM에 곧바로 추가 할 수있는 동적 콘텐츠입니다. JSONP도 동일한 보안 위험의 영향을받습니다. JSON 자체는 안전하게 파싱되며 ('eval'을 제외하고) JavaScript 함수를 구문 분석하지 않습니다. –

+0

XML을 예로 들어 보겠습니다. 안녕하세요 세계. 내 자바 스크립트는 데이터에 필요한 모든 작업을 수행하고 페이지에 더 많이 또는 덜 직접 삽입합니다. 왜 공격자가 을 "데이터"에 삽입 할 수 없었습니까? JSON과 동일한 것은 아닙니까? – Icode4food

5

AJAX는 엄격히 년 동안의 약어에 따라 다음되지 않았습니다. 그것은 "비동기 적으로로드 된 컨텐츠"를위한 지금의 별명 일뿐입니다.

요즘 대부분의 AJAX는 JSON으로 처리됩니다.

HTML을 JSON 또는 기타 XML (심지어 XML)을 통해 데이터로 사용하는지 여부는 실제로 애플리케이션의 특정 요구 사항에 달려 있습니다. 그런면에서 AHAH는 실제로 AJAX의 하위 집합입니다.

클라이언트 측 구문 분석/데이터를 렌더링 않아도 얻을 수 아무 혜택이없는 경우, 단지 서버 측이 그것을 할 및 HTML을 반환합니다.

1

JSON (Javascript Object Notation)은 경량이며 기본 Javascript이므로 XML보다 자주 사용됩니다.

당신이 필요로하는 것이 XML이라면, XML을 되돌릴 수 있습니다.

여기 여기 둘 사이에 good page on the differenceswhen to use HTML, XML or JSON

에 좋은 페이지입니다.

JSON은 주로 성능상의 이유로 사용됩니다. 해당 페이지에서 예를 사용하려면

XML :

<?xml version=’1.0′ encoding=’UTF-8′?> 
<card> 
    <fullname>Bala Arjunan</fullname> 
    <org>PH</org> 
    <emailaddrs> 
    <address type=’work’>[email protected]</address> 
    <address type=’home’ pref=’1′>[email protected]</address> 
    </emailaddrs> 
    <telephones> 
    <tel type=’work’ pref=’1′>+12345678</tel> 
    <tel type=’mobile’>+1234 1234</tel> 
    </telephones> 
    <addresses> 
    <address type=’work’ format=’B'>1234 Oil Mill St Chennai, IND</address> 
    <address type=’home’ format=’B'>5678 Oil Mill St Chennai, IND</address> 
    </addresses> 
    <urls> 
    <address type=’work’>http://balaarjunan.wordpress.com/</address> 
    <address type=’home’>http://balaarjunan.wordpress.com/</address> 
    </urls> 
</card> 

JSON : JSON으로

{ 
    “fullname”: “Bala Arjunan”, 
    “org”: “PH”, 
    “emailaddrs”: [ 
    {"type": "work", "value": "[email protected]"}, 
    {"type": "home", "pref": 1, "value": "[email protected]"} 
    ], 
    “telephones”: [ 
    {"type": "work", "pref": 1, "value": "+12345678"}, 
    {"type": "mobile", "value": "+1234 1234"} 
    ], 
    “addresses”: [ 
    {"type": "work", "format": "us", "value": "1234 Oil Mill St Chennai, IND"}, 
    {"type": "home", "format": "us", "5678 Oil Mill St Chennai, IND"} 
    ], 
    “urls”: [ 
    {"type": "work", "value": "http://balaarjunan.wordpress.com/"}, 
    {"type": "home", "value": "http://balaarjunan.wordpress.com/"} 
    ] 
} 

이 훨씬 덜 중복있다.

OTOH, 평범한 'HTML 보내기는 매우 효과적입니다. 당신은 당신의 데이터에 대해 생각해야합니다. 텍스트 단락을 업데이트하는 중이면 html을 보내십시오. 항목을 다루는 중이거나 Javascript에서 조작하거나 사용하려고하는 항목의 모음 인 경우 JSON을 원합니다. ASyncronously RSS Feed 또는 다른 XML을 업데이트하려면 XML을 요청하십시오.

HTML은 단지 XML의 하위 집합입니다. xHTML은 모든 xml 규칙을 따릅니다. 자바 스크립트를 인식하는 브라우저 (모두)는 JSON (자바 스크립트) 및 HTML (XML)을 이해할 수 있습니다. 데이터 사용 방법에 따라 프로젝트에 맞는 것을 선택하십시오.