JavaScript模板仅适用于将小项目插入到DOM中吗?

3

我最近了解了Javascript模板并被深深吸引。

我正在使用MVC模式构建一个大型PHP应用程序。模板由相当不错的Twig处理。

我最近发现了Twig的Javascript实现版

我还阅读了一些关于使用Javascript模板引擎的文章,如这篇这篇这篇

现在,在我的应用程序中,对于标准请求,该应用程序会生成完整的页面作为没有JavaScript的用户的后备。对于AJAX请求,它可以生成页面的内容部分(没有<head><body>等)。

目前,Ajax响应对象只是呈现的HTML内容,然后将其插入到DOM中。

我是否应该返回一个包含已编译的Javascript模板和要插入到模板中的对象的响应对象?这样做有什么好处?

从我阅读的文章来看,Javascript模板只是表示页面的一小部分的小片段,例如在用户提交评论时即时显示博客文章上的评论。

Javascript模板只对于在页面中插入这些“小片段”有用吗?

3个回答

3

是的

最近我参与的一个项目沉迷于“客户端模板” ,我们使用它们来处理每一个模板。

对于我使用过的每一个模板库(大概两三个),你得到的错误信息都不是很好。如果你有一个涉及较多数据的巨大模板,你会发现u.foo is null or not an object错误信息会越来越让人沮丧。

我确定的最佳实践是:

  • 如果只是很少加载的模板,请从服务器返回完整的HTML代码片段。如果你只在页面上加载一次HTML代码,则最好将其完整地发送下去。这也鼓励您将逻辑保留在服务器端,因为那里可能是它应该存在的地方。
  • 只对小型、重复性的模板使用客户端模板。你的博客评论示例可能是一个很好的例子。当我的客户端模板非常小(< 10行)时,我发现它们最成功。
  • 使用无逻辑的模板引擎。在一个模板中允许的逻辑越多,它们就越难读/维护。另外,其中一些逻辑可能应该在业务层中,而不是在一些JavaScript模板中。换句话说,它们强制你将呈现与逻辑分开(这是好的)。

附:同一模板引擎可用于客户端和服务器端非常酷。这会使项目中的开发人员更加高效。


0

根据您的应用程序规模和要求,您应考虑以下因素:

  1. 不要过度使用Ajax;Ajax并非WebSockets,因此请谨慎使用。此外,客户端执行速度始终是关键;与仅在需要时通过AJAX请求名称和地址相比,将尽可能多的资源转储并在需要时使用它们会更快。例如,您可以发送给javascript userdata = {name:'xxxx',address;'yyyy', ...} ,然后在需要时使用它,而不是仅通过AJAX请求名称和地址。

  2. 建议使用全局PHP变量$sendData(或类似的变量名),并在插入HTML后,使用简单的<script>data = <?php echo json_encode($sendData); ?></script>将$sendData发送出去。

  3. JavaScript模板会增加执行速度。这使得将动态内容与缓存静态资源(如JavaScript函数)分离成为合理的选择。

  4. 你不能像这样返回一个包含编译后的JavaScript模板的响应对象,除非使用一些在返回之前进行编译工作的服务器端JavaScript引擎。

  5. 对于个人的福祉来说,最重要的是您能够快速、轻松且无痛地响应应用程序的维护;使用那些您无法完全控制的超级测试版实验性框架、端口和工具包是没有意义的。

工作要聪明,不要辛苦。 祝你好运,伙计。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接