与此问题相似; When to use JavaScript template engines?但不完全。
使用模板引擎(例如把手)制作完整网站(例如,跳过静态HTML和PHP处理,只是使用HTML模板发送用于客户端呈现的JavaScript)是否切实可行?或者,模板引擎只有在可重复使用的模板部分时才有用吗?
答案 0 :(得分:1)
你有一半的答案,这是重复使用,但你可以在服务器端得到它。对我来说,另一半如下:
允许前端开发人员处理JS和HTML中的所有交互式开发,几乎不了解JS的简单模板需求。
对于Web应用程序,服务器上的UI呈现会减慢或限制可以设计的交互/体验,或者至少限制性能。为什么服务器必须知道并理解用户按钮点击?浏览器功能强大,足以处理按钮点击。
它与REST服务很好地配对。浏览器知道如何请求数据并确定用户上下文。
更复杂的Web服务器端设计。跨群集和节点管理状态是一件非常复杂的事情。不是你不能,但为什么你呢?特别是对于大多数现代Web应用程序(Web 2.0和所有爵士乐)而言,重点是浏览器做得更多,处理按钮点击,排序数据等。猜猜所有这些都是用户状态。所以浏览器已经有了很多。那么为什么要在服务器集群中分配该状态,增加延迟,依赖性等。我在应用服务器策略中没有HTML。
更改控件。当你编写PHP并在所有内容中嵌入HTML剪辑时,最终会紧密耦合。它降低了用例更改的灵活性。
强有力地分离关注点。许多开发人员都倾向于在视图中执行业务逻辑。简单的模板有助于降低这种可能性。人们可以很容易地构建一个反对所有非模板化方法,JS或服务器端的论据,但这不是手头的问题。
如果您打算构建您想要的移动应用程序并需要避免演示标记的服务。因此,永远不要在应用程序服务器中生成HTML,否则您的应用程序只会说一种语言。人们可能会大声呼喊服务器端MVC会有所帮助,但不会出现离线,不同的访问模式等。
有一些性能,设备检测,'哑电话'的原因,生成HTML服务器端,但然后将其写入您的JS Web应用程序使用的服务。那就是例外。更好的是在服务器端用JS编写它,并在两者上重用业务功能和逻辑。
答案 1 :(得分:0)
当我制作一页网页应用程序(例如使用backbone.js)时,我使用JavaScript模板引擎。
在任何其他情况下,我都不会使用JavaScript模板引擎。
原因是,如果我用JavaScript以外的任何东西创建应用程序(PHP,Rails等),我喜欢在服务器上而不是在客户端上完成模板。