2017-02-17 10 views
2

오프라인으로 액세스 할 수 있어야하는 HTML 페이지 형식의 대화 형 보고서를 만듭니다. 다음 중 성능을 향상시킬 수있는 옵션은 무엇입니까?클라이언트 측과 서버 측 렌더링 오프라인 HTML 용

  • (서버 쪽 스크립팅을 통해) 모든 HTML을 미리 만들고 하나의 페이지 (방문 페이지)를 제외한 모든 "보기"를 숨 깁니다. 사용자가 메뉴 항목을 클릭하면 현재 보이는보기를 숨기고 해당 선택 항목에 해당하는보기를 숨 깁니다.
  • 모든 데이터를 JavaScript 변수/개체로 포함하십시오. 사용자가 메뉴에서 항목을 선택하면 Handlebars.js와 같은 템플릿 엔진을 사용하여 필요한 HTML을 만듭니다.

I는 서버 측 렌더링 대 클라이언트 측을 포함하는 다른 게시물 있지만, 특정 데이터 포인트를 요청하기 위해 서버에 다시 전화를 걸 수 없습니다 오프라인 응용 프로그램에 특정 아무것도 발견했습니다. 필자의 경우 모든 데이터 (수백에서 수천 개의 레코드까지)가 처음부터 HTML에 포함되어야합니다.

답변

1

나는 데이터와 템플릿을 클라이언트에 보내고 간단한 이유 때문에 클라이언트에서 HTML을 렌더링한다. 물론 실제로는 훨씬 빨라진다 (실제 데이터에 따라 다르다).

먼저 서버의 HTML을 미리 렌더링하면 전송할 데이터의 양이 훨씬 커집니다. 템플릿과 원시 데이터는 훨씬 작아 응용 프로그램이 더 빨리로드됩니다.

둘째로, 사용자가 렌더링 된 모든 페이지를 필요로하지 않을 수도 있습니다. 일부 페이지 만 사용 된 경우 서버의 모든 페이지를 렌더링하는 데 필요한 리소스가 낭비됩니다.

한 가지 더 - 모든 것이 클라이언트에 렌더링되면 응용 프로그램을 완전히 서버가 없게 만드는 것이 쉬워야합니다. json 파일을 응용 프로그램 코드 및 자산과 함께 데이터와 함께 제공 할 수 있으며이 경우 서버 없이도 작동 할 수 있습니다 (물론이 사용 사례가 해당 상황에 해당되는 경우에만 해당됩니다).

+0

답변 해 주셔서 감사합니다. 서버 간 전송 시간을 방정식에서 제외하고 HTML이 오프라인으로 실행되면 페이지로드 시간 만 고려하면 템플릿/원시 데이터는 HTML을 미리 렌더링하는 것보다 더 빠릅니까? – atm

+1

무엇이 더 빠를 것인지 예측하기 어렵습니다. 클라이언트에 데이터를 가져온 다음 모든 것을 한 번에 렌더링 할 수 있습니다. 이렇게하면 아무런 차이가 없습니다. 전체 시간은 서버 측 또는 클라이언트 측 렌더링이 더 빠른지 여부에 따라 다릅니다. 또한 많은 사용자가있는 경우 클라이언트에서 렌더링하여 서버에서로드를 제거합니다. –

관련 문제