フェニックスのドキュメントによると、"フェニックスのテンプレートがプリコンパイルされているため、非常に高速になります。"。Pre-Compiled Templates in Phoenix
私はいくつかの質問があります。これは、事前にコンパイルされたテンプレートが実際に意味するものと、Railsアプリケーションのようなものと比べてどれだけ大きな違いが生まれているかです。
フェニックスのドキュメントによると、"フェニックスのテンプレートがプリコンパイルされているため、非常に高速になります。"。Pre-Compiled Templates in Phoenix
私はいくつかの質問があります。これは、事前にコンパイルされたテンプレートが実際に意味するものと、Railsアプリケーションのようなものと比べてどれだけ大きな違いが生まれているかです。
事前コンパイルテンプレートが実際に
はここで事前にコンパイル何を意味するのは、web/templates
内のすべてのテンプレートは実際に対応するView
でrender
機能の正常な機能の条項にコンパイルされていることを意味します。
あなたはPostView
内容とweb/templates/posts/index.html.eex
でテンプレートをお持ちの場合:
<pre><%= inspect(@posts) %></pre>
をそのファイルを持つことがほとんどPostView
に以下の機能を追加するなど、*まったく同じです:
def render("index.html", assigns) do
"<pre>" <> inspect(assigns[:posts]) <> "</pre>"
end
* Phoenixは文字列を挿入する前に自動HTMLのエスケープ処理を行うため(XSSを防ぐため)、バイナリを連結する代わりにiolistsを返すなどの性能があります。
Here'sフェニックスでのこのコンパイルロジックの実装。 (ページの「defpコンパイル」「before_compile」を検索して。)
を、これは私はRailsのアプリケーション
のようなものに比べて、生産になりますどのように有意差の多くRailsには、少なくとも本番用で、おそらくは開発用のテンプレートキャッシング機構も必要です。私は、Railsのテンプレートのスピード/実装にはこれに触れてあまり知られていません。