Pusa Web 框架已发布。它实现了一个将前端逻辑(使用 JavaScript 在浏览器中执行)移至后端的概念。浏览器和 DOM 元素管理以及业务逻辑都在后端执行。浏览器端执行的 JavaScript 代码被一个通用中间件所取代,该中间件会调用位于后端的处理程序。前端无需使用 JavaScript 进行开发。Pusa 参考实现使用 PHP 编写,并以 GPLv3 许可证发布。除了 PHP 之外,该技术还可以使用任何其他语言实现,包括 JavaScript/Node.js、Java、Python、Go 和 Ruby。
Pusa 定义了一个基于极简命令集的交换协议。页面加载时,浏览器加载基本的 DOM 内容和 Pusa-Front JavaScript 核心。Pusa-Front 通过 Ajax 请求将浏览器事件(例如点击、失去焦点、聚焦和按键)和请求参数(触发事件的元素、其属性、URL 等)发送到 Pusa-Back 服务器处理程序。Pusa-Back 根据接收到的数据确定控制器,执行有效负载,并生成一组响应命令。收到请求响应后,Pusa-Front 执行这些命令,修改 DOM 内容和浏览器环境。
前端状态由后端生成,但不受后端控制,这使得 Pusa 的开发类似于显卡或 Canvas 的代码开发,开发者无法控制执行结果。要创建基于 Canvas 和 onmousemove 的交互式应用程序,可以在客户端加载和使用额外的 JavaScript 脚本。这种方法的缺点包括将部分负载从前端转移到后端,以及增加数据交换的频率。 服务器.
其优点包括:无需前端 JavaScript 开发人员,客户端代码稳定且紧凑(11 KB),前端无法访问主代码,无需 REST 序列化或 gRPC 类型的工具,以及消除前端和后端之间协调请求路由的问题。
来源: opennet.ru
