在Web应用程序中完全拆分前端和后端

时间:2015-08-20 11:40:46

标签: javascript model-view-controller web-applications

后端(服务器)只通过api(s)提供数据,所有页面呈现都将通过javascript(ajax)完成。

一般来说,我认为支持多个客户端是一个好主意,例如android,iOS,浏览器都可以使用相同的api。人们也可能有更明确的职责,只能专注于服务器或前端。

但是我现在可以找到一些问题:

1可重复使用的布局。

对于后端呈现的页面,我们可以使用一些模板(布局)库(如apache tile)来为while应用程序创建统一的外观。

对于客户端渲染,没有一个ejs,把手可以适合这个。

2身份验证

某些操作可能只对经过身份验证的用户开放,通常我们会使用:

<c:if test="${session.user}!=null">
    // put the security operations 
</c:if>

对于客户端渲染,我们必须向服务器发送ajax以确保用户已通过身份验证,然后刷新视图,这可能会导致渲染步骤更加复杂。

3个URL参数解析

当服务器呈现页面时,我们可以轻松获取网址参数,例如@Param @PathVariable。这意味着我们可以创建任何类型的网址。

对于客户端渲染,我们必须自己构建一个公共库来解析参数。

4 ...

我认为可能还有更多我尚未提及的问题。

然后我想知道这种设计是否可取?如果是,我们可以遵循任何常见做法吗?

1 个答案:

答案 0 :(得分:0)

大多数现代框架(ZKmeteordjango)都是这样的。所有数据服务都实现为返回JSON的REST或HTTP服务,而不是将所有内容整合到一个整体中。 UI只知道何时进行哪个调用,并在JavaScript中实现。

统一的外观和感觉不是你的目标;大多数平台略有不同,用户期望这些差异(Apple的行为与Android或Windows不同)。

对于身份验证,您仍然需要登录服务(大多数API需要cookie或它们不起作用)。所以这不会改变。