2016-10-18 2 views
0

우리는 LOC가 20 개 포함 된 .html.erb 파일을 가지고 있다고 가정합시다. 이 파일은 관련 데이터를 표시하기 위해 변수를 사용합니다.Rails 렌더링 프로세스는 어떻게 수행됩니까?

사용자가 파일에 로컬로 액세스 할 수 있는지 클라이언트의 브라우저가 클라이언트의 브라우저 및 서버에서 erb 파일과 데이터를 결합하는 렌더링 프로세스를 수행하는지 알고 싶습니다 (즉, erb 파일은 이미 클라이언트와 서버에서만 사용할 수 있습니다. 데이터를 전송해야 함 : 오버 헤드가 적습니다. 또는
서버는 데이터를 erb 파일과 결합한 다음 더 많은 오버 헤드를 전송합니다.

위의 예에서 AJAX 호출을 고려하지 않습니다.

답변

1

Embedded Ruby (ERB)은 서버 측 템플릿 언어입니다.

/app 폴더가 Rails 서버 웹 루트 (/public) 외부에 있으므로 사용자는보기에 직접 액세스 할 수 없습니다.

모든 클래식 서버 측 렌더링과 마찬가지로 클라이언트는 요청을 보내고 서버는 템플릿을 완전히 렌더링하고 "finished"html *을 클라이언트에 보냅니다. 이것은 예를 들어 PHP와 다르지 않습니다.

다른 서버 측 템플릿 언어 (Slim, Haml, jBuilder 등)와 함께 Rails를 사용할 수 있습니다.

Handlebars, Mustache, Jade, EJS, JSX와 같은 클라이언트 측 템플릿 언어를 사용하고 레일즈 앱에서 JSON 데이터를 전달하기 만하면됩니다.

+0

현재 ERB 클라이언트 측 구현 (통지 중)이 없습니다. 이것은 ERB가 Ruby 언어와 밀접하게 연결되어 있기 때문입니다. 앞으로 NaCL이 현실적인 옵션이 될 때 그것은 실현 가능한 아이디어가 될 수 있습니다. – max

+0

* ERB는 JSON, YAML, JS, XML, Markdown, plaintext 등과 같은 다른 텍스트 형식을 렌더링 할 수 있습니다. – max

+0

감사합니다! 내가 필요한 설명. 클라이언트 측 대안을 지적 해 주셔서 감사합니다. 의견이나 알림과 같은 반복적 인 데이터를 표시하기 위해 레일을 사용하여 어느 것을 선호하는지 알 수 있습니까? –

관련 문제