【问题标题】:Web-Dev with AngularJS: What kind of server software should I use?Web-Dev with AngularJS:我应该使用什么样的服务器软件?
【发布时间】:2015-02-17 17:57:09
【问题描述】:

我对这个概念有疑问:

我有大约 3-4 年没有从事 Web 开发实践,现在,当我试图回到它并采用最新的技术时,我感到非常困惑。

过去,我习惯于使用 JSP/PHP/Java Servlets,或者其他一些在服务器中处理页面然后将其发送到客户端的技术。例如(JSP):

<% for (String s : names) { %>
    <% =s %>
    </br>
<% } %>

如果我理解正确,现在 AngularJS 应该在客户端执行循环,而不是在服务器上执行 Java,并且数据应该由客户端以 JSON 格式,使用 AJAX 调用来实现到服务器。

  1. 我的理解正确吗?
  2. 如果是这样 - 我认为我所需要的只是一个能够让我定义 AJAX 函数的服务器 - 我不再需要将服务器代码与客户端代码混合(即我不需要 JSP / PHP / Java小服务程序/等)。那么是否有新的简单服务器技术被指定用于启用这些 AJAX 调用?如今,在 Java 和 Python 中,哪些服务器技术被推荐并普遍用于这些目标?

【问题讨论】:

  • Scriptlet 在 JSP 中是一个很大的代码异味,所以这是一个非常糟糕的例子。 ;) 这个问题对于 SO 来说也可能有点偏离主题,可能更适合软件推荐。无论如何,如果您在后端需要大量业务逻辑,Java + Spring 或 Play Framework 是流行的选择。如果您只想要一个轻量级(少量业务逻辑)后端并以低廉的价格提供大量调用,那么如今 MEAN(MongoDB、Express、AngularJS 和 Node.js)是一个简单且大肆宣传的技术堆栈。当然还有很多其他选择,但至少对于这些,您可以保证在网上找到大量帮助。
  • 感谢您的回答!顺便说一句,这不仅仅是关于软件推荐——首先是关于概念,因为我不确定它今天是如何工作的。你说得对,它也是关于推荐的,因为我实际上不知道今天常用的用于这些现代实践的任何服务器工具

标签: ajax angularjs jsp


【解决方案1】:

是的,你的理解是正确的。 AngularJS 是一种选择,还有其他以类似方式工作的 JavaScript 框架 - Angular 似乎是目前最流行的。

至于服务器,您几乎可以使用任何技术,标准是通过 RESTful Web 服务提供 JSON 数据。

如果您也想在服务器上使用 JavaScript,那么带有 Express 的 Node.js 很受欢迎(并且易于使用)。

如果您想使用 Java,您可以使用 JBoss 或 Jetty 之类的东西作为服务器,然后使用 Resteasy 之类的东西作为 RESTful 服务公开您的服务。添加到现有应用程序相当容易。

我建议您从Angular tutorial 开始,它将详细介绍其中的许多概念。这是一个很好的起点。

【讨论】:

    【解决方案2】:

    正如建议的那样,您的后端服务器将向客户端发送 JSON。然后,客户端可以使用 AngularJS 等前端框架在页面上动态呈现 HTML。

    后端语言是什么并不重要。但是,为了获得最佳性能,有些人建议您在将 HTML 发送到浏览器之前,在渲染 HTML 的位置添加一个额外的 back-end layer between your server and the browser。他们说这会带来更好的性能和搜索引擎优化。 Node.js 可以很好地作为渲染层,因此您不妨简化您的技术堆栈并将 Node.js 用于您的整个后端。

    此外,使用某些前端框架比其他框架更容易实现服务器端渲染。这是React 最近流行的原因之一。用它更容易实现服务端渲染。

    【讨论】:

    • 我不确定我是否理解了你解释的附加层理论。你能告诉我中间层的作用是什么吗? “在服务器和浏览器之间”是什么意思——具体在哪里?
    • @SomethingSomething 它可以工作的一种方法是浏览器向服务器发出请求,服务器将 JSON 有效负载发送到渲染层。渲染层创建 HTML,将其发送回服务器,服务器使用渲染的 HTML 而不是 JSON 有效负载进行响应。我也不完全了解架构,但这是基本思想。
    • 所以你实际上说页面的创建回到了服务器的角色,就像在 JSP 的旧时代一样,在我们可以嵌入 AngularJS 代码并在客户端上对其进行评估之前
    • @SomethingSomething 是的,完全正确。但是以 AngularJS 为例,你不能只是向它扔任何 HTML 并期望它能够工作。 AngularJS 本身必须生成 HTML 才能知道如何继续使用它。这就是为什么如果你想在服务器上渲染 AngularJS,你可能需要在后端使用 Node.js 和 PhantomJS。我不认为 React 有这个问题。
    猜你喜欢
    • 2010-09-13
    • 2010-09-27
    • 2012-12-01
    • 2014-08-19
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多