完全用angularjs替换jinja2

时间:2014-03-21 08:44:03

标签: angularjs flask jinja2

使用Angular.js可以实现jinja2可以实现的目标。我的问题是 - 完全用angular.js替换jinja2有什么好处吗?

2 个答案:

答案 0 :(得分:15)

我认为大多数问题来自同样明显的区别:Jinja2是服务器端,Angular是客户端,这使得它们真的不同。

  1. <强> SEO 即可。谷歌不了解Angular魔法。它只是一个繁重的Javascript代码,Google无法理解它。当然,你有一些解决方法可以向Google展示你的重要文本,但要解决它,你必须在服务器端渲染一些东西,回到Jinja2或者一些黑客来渲染东西以改善你的搜索引擎优化。 (如果您不关心Google搜索,这一点并不重要)

  2. 性能服务器端呈现比Javascript呈现更快。我说的是普通用户,可能是因为过时的Internet Explorer和糟糕的互联网连接。使用Angular,您必须等待至少一些Javascript资源在页面可用之前加载。用户会注意到这一点,我们知道一个慢速网站会触及您的转化。查看这篇关于&#34;第一条推文的时间的文章&#34;:https://blog.twitter.com/2012/improving-performance-on-twittercom

  3. <强>兼容性即可。是的,他们声称该框架支持所有常见的浏览器,但有关于黑客的完整文档,以使其适用于IE7。取决于您的受众。

  4. <强>成熟即可。 Jinja2非常稳定,拥有漂亮的API,几乎可以部署在所有Flask网站上。 Angular仍在不断发展,有时情况会发生很大变化。

  5. <强>缺乏经验即可。你无法用Jinja2取代Angular。当你尝试它时,你会明白它们是不同的,你不能以同样的方式使用它们。在你做正确的事情之前,你会犯很多错误,就像你使用任何新的很棒的工具一样。

  6. 当然,您可以根据您的具体需求对我的所有论据提出索赔,这只是您在去Angular之前必须了解的一些事项。

    也就是说,我在几个项目中使用Angular,主要用于单页应用程序。这是Angular的一个很棒的用例。在所有这些项目中,我仍然使用Jinja2进行渲染,因此这不是完全替代。

    更新:

    在我最初的回复后差不多两年的一些更新。

    1. Google更了解动态渲染,但我仍然不相信它。

    2. 我不认为客户端渲染是一件事。只有实时数据呈现在客户端,但基本HTML是在服务器端生成的。

    3. Angular放弃了IE7 / IE8的支持。对于网络而言,这绝对是一件好事,但不幸的是,在某些情况下我仍然必须支持这些浏览器。

    4. Angular 2即将推出,改变您对当前版本的了解。我不记得任何重大的Jinja2变化。

答案 1 :(得分:3)

为什么要替换你的目标?使用Jinja和其他服务器端框架的强大功能以及客户端框架的强大功能。

使用两者的好处:

  • 简单易用的代码
  • 更好的表现
  • 更易于维护
  • 等等。你可以选择。

选择一个或另一个会让你的工作变得令人沮丧和复杂。