Elixir Phoenix中的预编译模板

Elixir Phoenix中的预编译模板,elixir,phoenix-framework,Elixir,Phoenix Framework,Phoenix docs说“Phoenix模板是预编译的,这使得它们的速度非常快。” 我有几个问题,预编译模板实际上意味着什么,与Rails应用程序之类的东西相比,它在生产中会产生多大的显著差异 预编译模板实际上意味着什么 这里的预编译意味着web/templates中的所有模板实际上都编译为相应视图中render函数的正常函数子句 <pre><%= inspect(@posts) %></pre> 如果您在web/templates/posts/index

Phoenix docs说“Phoenix模板是预编译的,这使得它们的速度非常快。”

我有几个问题,预编译模板实际上意味着什么,与Rails应用程序之类的东西相比,它在生产中会产生多大的显著差异

预编译模板实际上意味着什么

这里的预编译意味着
web/templates
中的所有模板实际上都编译为相应
视图中
render
函数的正常函数子句

<pre><%= inspect(@posts) %></pre>
如果您在
web/templates/posts/index.html.eex
中有一个
PostView
和一个包含以下内容的模板:

" 终止
*这几乎是因为Phoenix在注入字符串之前处理自动HTML转义(以防止XSS),返回iolist而不是连接二进制文件(为了性能),等等

此编译逻辑在Phoenix中的实现。(在页面上搜索“before_compile”和“defp compile”)

与Rails应用程序相比,这将在生产中产生多大的显著差异

我确信Rails还必须有一个模板缓存机制,至少在生产中是如此,在开发中也是如此。我不太熟悉Rails模板的速度/实现,因此无法对此发表评论

预编译模板实际上意味着什么

这里的预编译意味着
web/templates
中的所有模板实际上都编译为相应
视图中
render
函数的正常函数子句

<pre><%= inspect(@posts) %></pre>
如果您在
web/templates/posts/index.html.eex
中有一个
PostView
和一个包含以下内容的模板:

" 终止
*这几乎是因为Phoenix在注入字符串之前处理自动HTML转义(以防止XSS),返回iolist而不是连接二进制文件(为了性能),等等

此编译逻辑在Phoenix中的实现。(在页面上搜索“编译前”和“defp编译”。)

与Rails应用程序相比,这将在生产中产生多大的显著差异

我确信Rails还必须有一个模板缓存机制,至少对于生产来说是如此,对于开发来说也是如此。我不太熟悉Rails模板的速度/实现,因此无法对此进行评论