2010-01-06 2 views
2

XMLHttpRequests와 JSON을 광범위하게 사용하여 MySQL 데이터베이스에서 가져 와서 레코드를 배열로 반환했습니다. 그것은 완벽하게 작동합니다.XMLHttpRequest/JSON 또는 iFrame을 사용해야합니까?

또한 웹 페이지로 데이터 서식을 지정하고 가로 막 대형 차트를 만드는 서버 (PHP를 통해)가 있습니다 (배열을 처리를 위해 JavaScript로 다시 보내는 것과 반대). 현재, 숨겨진 iframe을 통해 PHP 파일을 호출 한 다음 HTML을 DIV에 삽입합니다 (iframe의 특정 부분이 마음에 들지 않아 액세스 할 수 없기 때문에).

iframe을 가장 좋은 방법으로 사용하고 있습니까? 아니면 XMLHttpRequest 및 JSON을 통해 동일한 작업을 수행 할 수 있습니까? 반환되는 데이터의 길이 때문에 묻습니다. 현재 데이터의 전체 페이지로 변환되지만 확장 가능해야합니다 (예 : 향후 몇 페이지의 데이터).

통찰력을 가져 주셔서 감사합니다.

+0

PHP에서 서식이 지정된 HTML을 가져 오기 위해 IFrame이 필요한 이유가 무엇입니까? –

+0

HTML 프레임을 숨기고 데이터를 가져 오는 몇 년 동안 (최신 JS 이전) 사용한 기술에서 변환 할 때 iframe을 사용해 보았습니다. JQ-Load에 대해 몰랐고 여전히 구문에 익숙해졌습니다. 또한 때때로 JQuery를 사용할 때 브라우저 호환성 문제가 발생합니다. 아마도 그것은 여전히 ​​학습 곡선이지만, 예를 들어, 귀하의 대답에 따라 JQuery로드를 사용했습니다. Chrome과 Safari에서 완벽하게 작동했지만 Firefox에서 오류 메시지가 나타납니다. 그래서 옛날 방식에서 전환하는 데 너무 오래 걸렸습니다. 오래된 방법의 대부분은 여전히 ​​모든 곳에서 작동합니다. –

답변

2

다른 페이지에서 서식이 지정된 HTML을 가져와 현재 페이지에 삽입하려는 경우 dom에 따라 가장 쉬운 방법은 jQuery load methods입니다. 그것은 주어진 URL에 아약스 요청을 만들고, HTML을 가져 와서 지정된 페이지 요소에 추가합니다.

일반적으로 JSON 데이터를 전달하고 서식이 지정된 HTML을 전달하는 두 가지 방법은 여러 가지 장점이 있습니다. 개인적으로 JSON 데이터를 전달하고 클라이언트 스크립트 및 HTML 형식으로 선호합니다. 이 방법으로 더 재사용 할 수 있습니다.

+0

올바른, jquery 같은 일을 할 수 있지만 걱정은 데이터의 길이를 줄일 수 없다는 것입니다. 데이터는 단지 PHP 응답 부분이 콘텐츠의 경우, 즉 PHP에서 어쨌든 약간의 코드 변경이 필요한 경우에만 줄일 수 있습니다. – joetsuihk

+0

매우 정적 인 경우 데이터를 항상 Gzip 및 캐시 할 수 있으므로 길이가 그렇게 생각하지 않을 정도입니다. –

+0

Branislav (그리고 조엘의 사이즈 알리미)에 감사드립니다. JQuery를 사용해 보도록하겠습니다. 클라이언트 서식 지정을 위해 JSON 데이터를 전달하는 것에 대한 귀하의 의견은 내가 궁금해했던 (피해야 할) JavaScript 내 PHP 함수 재 작성과 일치합니다. 시작 코드는 JavaScript로 시작한 다음 더 정교하게 만들기 (복잡한) 전에 PHP로 전환했습니다. 클라이언트 장치가 스마트 폰일 가능성이 높고 처리 능력에 의존하고 싶지 않기 때문에 전환했습니다. 그러나 단일 코드 (JSON)를 사용하면 코드 전체에서 멋지게됩니다. –