是应该由应用呈现视图,还是静态网站应该使用AJAX联系API?

时间:2018-01-19 13:26:52

标签: ajax api web-applications

我开始用Node.js和Express编写我的第一个Web应用程序。我有两种方法。

  • 创建两组路线。一个发送JSON,一个使用模板引擎呈现页面
  • 创建一个静态网站,使用AJAX对后端进行API调用,并且只有API的路由。

我理解方法#2取决于浏览器中的AJAX支持,但如果这是您的项目,基于每种方法的优缺点,您会选择哪些以及为什么?

3 个答案:

答案 0 :(得分:2)

如果我正确读取它,第一组路由选项#1和#2都是返回JSON而不是发送它的API。

假设在#2中你不会使用JavaScript进行AJAX调用来创建静态页面,而是仍然使用像app.use('/', express.static(path.join(__dirname, 'dist')));这样的快速静态路由,两种方法之间的区别并不大。

除非你已经知道一些受支持的模板语言,例如mustache,否则你必须学习一个pick one之前(根据我的经验,这并不总是一件容易的事!)

如果你不了解一个,根据你的应用,你可能仍然可以从学习和使用它中受益。作为一个例子,你可以想到一个非常通用的UI,其中单个模板可以被重复使用很多次 - 就像一个通用的数据库UI,类似于众所周知的phpmyadmin

如果是静态路由,您可以使用包含组件或模板的JavaScript框架(例如angular)来获得类似的结果。如果您不打算使用一个,那么可能会导致大量代码重复其他可重用的小部件。即使使用了一个,我也可以想象一下模板引擎会导致代码减少的情况(或者至少会减少项目中的文件)。但是不确定它是否会更容易导航,而且在项目增长时可以覆盖测试。

如果不了解您的项目,很难提供更多建议。

答案 1 :(得分:1)

如果您正在开发的产品主要是静态内容,其中包含一些动态内容,我建议您通过模板系统从后端提供HTML。一个很好的例子就是博客。你最终会得到更好的搜索引擎优化,并且在这种方法中可以减少移动的部分。

但是,如果您想开发单页面应用程序,我建议您将后端完全用作api,并将您的客户端逻辑完全写入React / Vue / Angular /中。单页应用程序的前端完全用javascript编写,最适合在线体验高度动态,“app like”的体验。想想gmail或facebook。

答案 2 :(得分:0)

在我目前的项目中,我们使用两种方法。许多视图是静态的,数据是从API调用(我们只使用角度)或自举值(我们用模板加载一些对象,如用户角色等)获得的。

但是,有些视图会在服务器站点上呈现,因为它可以轻松地动态注入值,令牌或其他支持数据,而无需额外请求。

所以,我投票支持灵活性