rack_pjax仍适用于Rails5吗?

时间:2017-05-04 19:47:01

标签: ruby-on-rails pjax

我在我的第一个网站上工作。我打算通过ajax加载每个页面以使音乐播放器在后台运行不变,但我想要后退按钮功能,所以我正在研究如何做到这一点。

我发现与ajax和pjax相关的大部分教程都是5-6岁;我只是想知道pjax和rack-pjax rails gem是否仍然适用,谢谢

1 个答案:

答案 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匹配所有永久元素,并将它们从原始页面传输到新页面,保留其数据和事件侦听器。