跨越 JavaScript:后端语言正在走入前端

大哥大姐打扰一下,跨越 JavaScript:后端语言正在走入前端
最新回答
灼热感

2026-04-22 05:22:26

在网络计算早期,大型机负责处理复杂任务,用户通过终端与之交互,只能进行文本操作。随着个人电脑的出现,客户端计算能力增强,能进行类似于身份验证和存储的真实计算。互联网的崛起将重心重新转移到服务端。过去十年,JavaScript使得“单页应用程序”兴起,客户端再次崛起。然而,新工具正推动“钟摆”回归服务端。

先驱工具如Phoenix通过Elixir的框架LiveView,允许开发者为实时应用创建基于浏览器的UI,如聊天室和Twitter风格的应用。LiveView仅需一点JavaScript建立WebSocket连接,用于处理用户输入和接收服务端更新的HTML/CSS。LiveView并非首个提供后端开发者创建前端UI能力的平台,微软的.NET ASP.NET Web Forms等工具已存在多年,启发了许多新工具。

Phoenix的创建者Chris McCord的目标不是除掉单页应用程序,而是让特定类别的应用程序免于使用SPA,而更重视服务端处理逻辑和渲染页面。以实时聊天程序为例,使用LiveView能减少客户端处理和浏览器接收负载,因为程序逻辑在服务端完成,只更新页面变化的部分。

Web开发经历了从依赖服务端到客户端回归,再到再次转向服务端的演变。早期,基于Web的日历程序完全依赖服务端,更新日程需要刷新整个页面。随着浏览器和Web技术进步,只更新页面上小部分的内容成为可能。通过JavaScript,开发者能创建响应性高、离线支持能力强的日历程序。近年来,Angular、React和Vue等库使得复杂类桌面应用程序的创建成为可能,但这也带来了客户端负担、文件大小增加和双代码库管理的权衡。

对于很多应用程序,这种权衡是值得的,如日历和依赖网络连接的游戏。Phoenix的LiveView专注于实时应用程序,通过WebSocket连接服务端,减少客户端负担。Erlang和Elixir的并发处理能力是LiveView的关键,允许同时处理大量用户请求而不会阻塞。

尽管LiveView基于Elixir开发,Ruby on Rails也出现了类似构建实时应用的方法,如StimulusReflex和Hotwire。Rails开发者认为新工具满足了他们的需求,强调可扩展性是大多数现实世界问题的根本原因,而非编程语言本身。Laravel的Livewire通过AJAX请求传递状态,虽然不像Phoenix LiveView那样实时,但提供了类似的功能。

LiveView和类似工具的兴起表明,随着技术的发展,前后端界限变得模糊,计算在客户端和服务端之间更加平衡。React Server Components等新特性进一步推动了这一趋势,使得更多计算任务在服务端执行。开发者需要根据目标和偏好选择最适合的工具和技术,以实现最佳性能和用户体验。