2012-08-04 5 views
2

내보기 중 하나가 다른 유형의 하위보기가있는 복잡한 피드 인 onb backbone.js 응용 프로그램을 작성 중입니다.서버 측에서 백본 응용 프로그램을 다시 사용하여 서버 측에서보기를 렌더링하십시오.

전자 메일을 보내기 위해 정적보기 버전을 생성해야합니다. 나는 나에게 두 가지 옵션 중복

내가 와서없이 기존 코드에서만큼 내가 할 수있는 재사용 할 수 있도록 가장 실용적인 솔루션을 찾고 있는데요 :

  1. 정적 PHP를 사용하여 뷰를 생성합니다. 이것은 남성들로 하여금 서로 다른 언어로 인해 많은 논리를 복제해야 할 것입니다.
  2. 간단한 nodejs http 서버를 설정하여 대부분의 앱 로직을 재사용하여 서버 측에서보기를 만듭니다. 이것은 훌륭하게 들리지만, 장기적으로 볼 때 이러한 솔루션이 얼마나 실용적인지 알지 못합니다. 예를 들어, 서버 측에서 Jquery를 사용하여 기존 html 파일에서 레이아웃을 만들 수 있는지 여부를 완전히 알지 못합니다.

두 가지 옵션 중 어떤 옵션을 사용해야하며 그 이유는 무엇입니까? 아니면 세 번째가 있을까요?

+0

글쎄, 내 의견을 제공 할 수있는 경우에 대해 어떤 생각을 가지고 있지 않은 경우에도 _nodejs_ 그것은 지금까지 충분한 커뮤니티 지원을 가지고있는 유일한 _server side JS framework_ 인 것처럼 보입니다. 따라서 nodejs를 사용하고 어떻게 반응하는지 보도록 권장합니다. – fguillen

+0

클라이언트 측에서 뷰를 어떻게 렌더링하고 있습니까? Moustache와 같은 템플릿 엔진을 사용하거나 페이지를 생성하기 위해 DOM을 (직접 또는 jQuery를 통해) 사용하여 HTML 문자열을 생성합니까? 후자라면, 노드에서 실행할 수있는 DOM 구현이 없으면 클라이언트 측 렌더링 코드가 서버에서 도움이되지 않습니다. 그것이 이전의 경우, 적어도 콧수염이라면, 서버 측 구현을 실행할 수 있습니다. – JMM

답변

2

첫 번째 backbone.js 앱에서 작업을 시작했을 때 나는이 정확한 문제에 대해 오랫동안 토론했다. 나는 당신이 너무 많은 뷰 코드를 복제하는 것이 낭비라고 생각했기 때문이다. 나는 레일에서 일하고 있는데, 내 목표는 서버 (haml/ruby)와 클라이언트 (haml/coffeescript)의 템플릿에서 같은 형식 (haml)을 사용하는 것이었지만, 불가능하고 어쨌든 그리 좋지는 않았다. 타당한.

어쨌든 몇 달 동안 앱을 사용해 본 결과, 중복이 중요한 문제는 아니라는 결론에 도달했습니다. 최종 결과가 몇 페이지에 불과하면 중복을 피하기 위해 노력할 가치가 없습니다. 또한 필자의 경우 적어도 서버에서 보내는 정적 페이지는 backbone.js가 렌더링하는 템플릿과 완전히 동일한 구조를 갖지 않으므로 어쨌든 100 % 중복되지는 않습니다.

도움이 될지 모르겠지만, 어쨌든 처음에는 페이지를 복제하고 추가 작업이 실제로 얼마나 많은지 확인하는 것이 좋습니다. nodejs 서버와 함께 # 2와 같은 더 복잡한 솔루션은 실제로 많은 페이지를 이런 식으로 제공하지 않는 한 과도한 공격으로 저를 공격합니다. 그것은 가치가 무엇인지에 대한

, 여기에 SO에 주제에 대한 몇 가지 논의 있습니다

Rails Client side/Server side rendering using single template (handlebars or Mustache) with Sammy.js

Template language that works on both server and client

+0

매우 실용적인 제안, 나는 그것을 좋아한다. 때로 _elegant_ 디자인을 찾고 _good_에 대한 길을 잃어 버렸습니다. – fguillen

+0

내 감정을 정확하게. –

관련 문제