轨道中的涡轮连杆

Turbolinks in rails

提问人:Muhammad Ans 提问时间:6/3/2023 最后编辑:mechnicovMuhammad Ans 更新时间:6/3/2023 访问量:65

问:

最近我一直在阅读有关已弃用的涡轮链接的文章,但应该有适当的知识。我读到涡轮链接将请求页面的正文替换为当前页面的正文并合并头部。主要速度来自不必重新加载 js 或 css 文件等资产,这些资产存在于请求页面和当前页面的头部中,并且是相同的。 我的困惑是,一些老年人说涡轮增压器不会取代身体,而是取代身体的各个部分。如果有一个完整的正文交换,那么它几乎与你发送一个普通的请求而不是ajax一样。 现在我很困惑。请就涡轮连杆的工作流程提供您的专家意见。

Ruby-on-Rails 涡轮连杆

评论

0赞 Roland Studer 6/3/2023
如果你真的是指涡轮链接,或者只是被称为较新的东西,你可能应该与其他人澄清,新方法确实允许你只使用turbo_frames或turbo_streams来更改页面的某些部分,请参阅 turbo.hotwired.dev/handbook/framesturbo
0赞 Muhammad Ans 6/3/2023
不是涡轮增压,只是明确谈论涡轮链接。

答:

1赞 mechnicov 6/3/2023 #1

默认情况下,在渲染过程中,Turbolinks 会直接替换当前元素并合并元素的内容。JavaScript 窗口和文档对象以及 HTML 元素从一个呈现持续到下一个呈现<body><head><html>

但是,Turbolinks 通过注释具有“永久”元素的概念。将此批注放在任何具有 ID 的元素上,允许该元素在页面更改后保留data-turbolinks-permanent

永久元素在页面加载过程中保持不变,因此在导航后无需重新应用对这些元素所做的任何更改

通过为它们提供 HTML ID 并使用 data-turbolinks-permanent 注释它们来指定永久元素

<div id="cart-counter" data-turbolinks-permanent>1 item</div>

在每次渲染之前,Turbolinks 都会匹配所有永久元素,并将它们从原始页面传输到新页面,从而保留其数据和事件侦听器id