预编译的车把模板使文件大小加倍

Precompiled handlebars template doubles the file size

本文关键字:文件大小 编译      更新时间:2023-09-26

我在我的应用程序上使用handlebas模板引擎,它主要针对桌面浏览器

目前,我用HTML分发所有模板,并在浏览器中编译它们。我想将预编译应用于我的模板,以使我的应用程序更快,但事情并没有像我想象的那样奏效。

我运行这样的命令来预编译并最小化我的模板:

handlebars -m example.handlebars -f example.js

然后我得到了带有example.js,文件大小增加了一倍

在不编译模板的情况下,我确实减少了浏览器的使用,并且handlebas的运行时包要小得多。但模板的文件大小比我现有的成本更高。

那么,在预编译模板时,我有没有做错什么呢
或者我误解了预编译模板的含义?

预编译模板时,大小总是会有开销,因为表达式如下:

<div>{{values.abc}}</div>

将被编译为类似于:

function program(data) {
  return '<div>' + program2(data) + '</div>';
}
function program2(data) {
  return data.values ? data.values.abc ? data.values.abc : '' : '';
}

但这里的规模不应该是一个主要的问题。如果是这样,您应该考虑在需要时动态加载模板,而不是一次将所有内容发送到客户端。