如何使用非Node.js后端构建Modern前端

How to build Modern front-end with non-Node.js backend?

本文关键字:构建 Modern 前端 后端 js 何使用 Node      更新时间:2023-09-26

一般来说,我是后端和全栈开发人员,也是技术负责人。多年来,我一直在选择开发工具。

对于后端,我选择了Typesafe Stack。它使应用程序具有反应性,并且相对易于扩展和维护。用Scala编写代码很有趣。

对于前端,我使用Angular.js,以前是knockout.js、YUI、Mootools、jquery、vanilla。

但对于Angular.js,我真的很困惑。问题不在于工具本身,而在于Web的发展方式。

其目的是加快应用程序,使其更具响应性、反应性和交互性。它将我们引向单页应用程序。Angular.js很好。

但是

对于现代应用程序来说,尽快呈现第一页是非常重要的。对于单页应用程序,在解析主模板,然后加载所有脚本,然后启动应用程序,路由请求,然后向服务器请求一些REST资源,将其绑定到模板中,然后向用户显示之前,这是不可能发生的。

等待的网络延迟太多了!大量的顺序请求接踵而至。

所以看内容需要很长时间。此外,它还使通过搜索引擎进行索引变得困难,并限制了可访问性(Safari中的阅读器模式通常不尊重angular.js生成的标记)

好吧,人们可以通过prerender.io这样的工具来解决可搜索性的问题。好吧,即使它看起来很难看,但第一页加载怎么办?

我听说Twitter最终变成了在后端呈现内容,然后用脚本包装它。怎样

我在node.js上看到过一些具有相同目的的项目。它们使用客户端实际获得的相同javascript来呈现内容,并将结果html提供给客户端。然后用React.js触发器和代码,甚至angular.js来包装它。但如果Node.js后端不是我们的选择呢?

因此,要求是非常自然的:

  • 能够在后端(预)呈现内容
  • 加载页面后在页面上连接脚本
  • 不要用脚本生成的内容替换页面内容
  • 对所有其他页面视图使用html5路由
  • 避免使用node.js,至少不要将其用作主要的后端技术

只有我一个人面对这个问题吗?你觉得怎么样?

以下是适用于您的选项:-使用node.js中间服务器,它依赖于您选择的服务器技术来处理实际数据和内容。Pro,你可以先慢慢测试,然后再完全转到它。-两次编写所有模板逻辑两次,一次用于服务器,另一次用于客户端。使用node.js可以重用前端的逻辑,但Angular.js并不完全对节点友好,因为它依赖DOM。

如果你确实想要最好的首页加载体验,你应该看看我今天给出的答案:AngularJS静态网页SEO(S3 CDN)

它可以让你引导一个静态应用程序,当你的角度应用程序加载时,该应用程序只使用CSS进行造型和路由。希望能有所帮助。