javascript模板是否仅适用于将小项目插入DOM

Are javascript templates only useful for inserting small items into the DOM?

本文关键字:小项目 插入 DOM 适用于 是否 javascript      更新时间:2023-09-26

我最近偶然发现了Javascript模板,对此非常感兴趣。

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

我最近发现了一个trick的javascript实现。

我还阅读了很多关于使用javascipt模板引擎的内容。

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

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

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

从我读到的帖子来看,javascript模板只是代表页面一小部分的小片段,例如在用户提交博客文章的那一刻显示评论

javascript模板是否只适用于在页面中插入这类小"片段"?

我最近参与的一个项目引发了"客户端模板热",我们对每个模板都使用了该死的东西。

对于我使用过的每个模板库(两个或三个),您得到的错误消息都不是很好。如果你有一个庞大的模板,它可以处理相当多的数据,你很快就会发现u.foo is null or not an object错误消息越来越令人沮丧。

我确定的最佳实践是:

  • 如果是很少加载的模板,则返回完整的HTML片段(来自服务器)。如果你在一个页面上只加载一次HTML,那么你还不如把它向下填充,对吗?这也鼓励您将逻辑保留在服务器上,它可能属于服务器
  • 将客户端模板用于小型重复模板。你的博客评论示例可能很好。当我的客户端模板非常小(<10行)时,我发现最成功的是
  • 使用无逻辑模板引擎。模板中允许的逻辑越多,就越难读取/维护它们。此外,其中一些逻辑可能应该在您的业务层中,而不是在某些JavaScript模板中。换句话说,它们迫使将您的演示与逻辑分离(这很好)

PS:客户端和服务器端模板都可以使用相同的模板引擎,这很酷。这将使项目的开发人员更有效率。

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

  1. 不要在Ajax上横行霸道;Ajax不是WebSockets,所以要谨慎使用它。此外,客户端执行速度始终是关键;与尽可能多地倾倒资源+在需要时使用资源相比,AJAX速度较慢;例如,您可以发送到javascript userdata={name:'xxxx',address;'yyyy',…}并使用它,而不是仅在需要时通过AJAX请求名称和地址。

  2. 建议使用全局PHP var$sendData(或类似的东西),在对HTML进行整形后,立即使用简单的<script>data = <?php echo json_encode($sendData); ?></script> 发送$sendData

  3. javascript模板增加了执行速度。这使得做另一种选择是合理的,即将所有动态的东西分离,并缓存静态资源,如javascript函数

  4. 你不能,我引用return a response object containing a compiled javascript template,如果不驻留在某个服务器端javascript引擎中,该引擎在返回之前完成编译工作

  5. 为了你的个人福利,它总是归结为你对维护应用程序的快速、轻松和无痛的反应;使用超级测试版的实验框架、端口和套件是没有意义的,因为你对的控制有限

聪明地工作,不要努力。祝你好运,伙计。

您还可以查看Distalhttp://code.google.com/p/distal模板引擎。