生命周期和 Stipple 应用程序的各种事件
1.同步请求 — 服务器端响应
-
浏览器向 URL 发出请求
-
请求由相应的`route` 处理,并执行`route` 处理程序
-
准备初始响应/负载,即合成 HTML 页面并注入所有 JS 脚本/文件
-
在此,我们创建模型的新实例,附加处理程序,并调用`Stipple.init(ModelType)` (因为`Stipple.init` 的结果实际上是一个 JS 文件,其中包含模型的 JS/Vue.js 版本)
-
在这一阶段,开发人员可以根据需要添加各种条件逻辑来定制 HTML 响应
-
Stipple.init
生成的模型的 JS/Vue.js 版本是基于 Julia 模型类型的,而不是基于实例的,因为 JS 资产的设计目的是通过 CDN 进行缓存和服务,所以我们不希望对 JS/Vue.js 模型文件进行定制—它将始终反映 Julia 模型的默认状态,并且对所有用户都是一样的。 -
完成所有这些步骤后,生成的 HTML 响应将发送到浏览器
4.异步请求 — 服务器端响应
-
当数据通过异步连接与前端交换时,Julia 模型的各种属性会发生变化,从而触发处理程序—从自动触发的`isready` 事件开始
-
开发人员围绕这些变化处理程序实现逻辑,响应事件并与前端交换数据
-
此时,我们不能再发送 HTML 有效载荷(因为那是 1 的初始 HTML 响应的一部分,而且连接已经关闭)--我们只能更新模型的属性(通过异步连接),这些属性会被推送到前端,导致用户界面更新以反映这些变化。
-
然而,这并不一定是一种限制,因为我们可以将元素的 HTML 内容绑定为动态内容,然后更新它,甚至可以发送一个要在前端执行的 JS 有效负载(这样我们就可以有效地从 Julia 后台向页面注入并执行 JS 逻辑)。