我在我的第一个网站上工作。我打算通过ajax加载每个页面以使音乐播放器在后台运行不变,但我想要后退按钮功能,所以我正在研究如何做到这一点。
我发现与ajax和pjax相关的大部分教程都是5-6岁;我只是想知道pjax和rack-pjax rails gem是否仍然适用,谢谢
答案 0 :(得分:1)
您不需要pjax
来执行此操作,因为turbolinks
已经具备此功能。
Turbolinks
允许您将某些元素标记为永久。永久元素在页面加载中保持不变,因此在导航后不需要重新应用对这些元素所做的任何更改。
<div id="music-player" data-turbolinks-permanent>...</div>
https://github.com/turbolinks/turbolinks#persisting-elements-across-page-loads
<强>更新强>
您添加data-turbolinks-permanent
属性的元素必须具有唯一ID,否则无法使用。
指定永久元素,为其提供HTML id
并使用data-turbolinks-permanent
对其进行注释。
<!-- SEQUENCER MODAL BODY -->
<div class="modal-body" id="music_player_modal" data-turbolinks-permanent>
<div class="container-fluid">
<div class="row">
<div class="col-md-12 nav-index" id="sequencerIndex">
<div id="jp_container_1">
<div class="jp-playlist">
<ul>
<li></li> <!-- Empty <li> so your HTML conforms with the W3C spec -->
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
在每次渲染之前,Turbolinks会按id
匹配所有永久元素,并将它们从原始页面传输到新页面,保留其数据和事件侦听器。