2013-03-19 2 views
1

PHP 백엔드를 통해 데이터베이스에서 HTML 콘텐츠를로드하는 작은 응용 프로그램이 있습니다. 현재 jQuery는 PHP 파일의 HTML 데이터를 기본 페이지의 DIV에로드합니다. 매초마다 setInterval() $('#div').html(html);을 사용합니다. 모든 서식이 CSS에서 이루어지며 데이터 구조가 PHP 파일에서 반향됩니다. 또한 jQuery를 사용하여 PHP를 통해 데이터베이스에 데이터를 게시 할 수 있습니다.이 애플리케이션은 작은 대화 앱입니다. 내 질문은 json을 사용하여 jQuery .each() 메서드를 통해 json을 사용하고 각 요소를 구문 분석하거나 데이터를로드하고 전체 데이터 구조를 반향 출력하기 위해 현재 .html() 메서드를 계속 사용하는이 데이터를 가져 오는 더 빠르고 효율적인 방법입니다. PHP를 통해? 시간 내 줘서 고마워.jQuery .each() 메서드 또는 .html() 메서드

+1

"더 좋음"을 정의하십시오. HTML 대신 JSON을 끌어 오면 클라이언트 측에서 더 많은 작업이 필요하지만 (약간) 빠른 네트워크 다운로드가 필요합니다. 일반적으로 이것은 바람직한 것으로 간주되지만 문제가보고되지 않으면 걱정하지 않으셔도됩니다. – Blazemonger

+0

"더 나은"이란 무엇을 의미합니까? 점진적으로 DOM 트리를 만드는 대신'html()'을 한 번 호출하면 더 빠를 것입니다 *. –

+0

이 질문은 특정 질문을하지 않기 때문에 닫힐 것으로 생각됩니다. 그러나 두 방법 모두 유효하다는 의견을 말하고 싶습니다. 단지 철학적 인 문제 일뿐입니다. PHP 백엔드에서 JSON 데이터를 반환하는 경우 PHP 백엔드가 프런트 엔드와 완전히 분리되므로 UI ​​유형 (사이트의 모바일 버전, 스마트 폰 앱 ...) 또는 다른보기에 사용할 수 있습니다 동일한 UI의 –

답변

2

필자는 개인적으로 구조를 PHP의 JSON 객체에 에코합니다. 다음 자바 스크립트 그것을 구문 분석하고 .html() 통해 컨테이너에 배치하십시오.

PHP에서 멋진 깨끗한 편집 가능한 코드를 사용하고 자바 스크립트를 사용하여 어디를 가야하는지 알 수 있으므로이 방법이 대안보다 훨씬 뛰어나다 고 생각합니다. 내 PHP에서

:

$response['error'] = false; // if you get an error set this to true 
    $response['html'] = ''; // set this wherever you like. 
    alternately if you needed to break it up 
    $response['html_A'] = ''; 
    $response['html_B'] = ''; 


>  in the end 


    echo json_encode($response); 

$의 .each 루프를하고 자바 스크립트

$.post(function(r){ 
    response = JSON.parse(r); 
    if (response.error !== true){ 
    $('#someDiv').html(response.html); 
    } 
    else { 
    alert (response.errorMessage); 
    } 
} 

에서는 힘든 것 같다. 특히 당신이/mod PHP의 생성 출력의 일부를 추가하기로 결정하면.

관련 문제