2017-05-04 68 views
0

我是一個在我的第一個網站工作的新手。我打算讓每個頁面通過ajax加載,以便讓音樂播放器在後臺運行不變,但我想要後退按鈕功能,因此我正在研究如何實現這一功能。Rack_pjax仍然適用於Rails5嗎?

我發現大多數與ajax和pjax有關的教程都是5-6歲;我只是想知道,如果pjax和rack-pjax導軌寶石仍然適用,謝謝

+0

如果你只是在學習,你可能會得到更多的里程,更多的反應式解決方案... –

+0

我明白這一點。我只打算寫一個網站:)你說這是一個可行的解決方案,然後 – fdsaevad

+0

如果這就是你要求的技術將仍然工作。我從來沒有嘗試過你的用例,但它可能有可能turbolinks可能已經足夠... –

回答

0

您不需要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所有的永久的成分,並將它們傳送從原來的頁面,新的頁面,保存他們的數據和事件偵聽器。

+0

嘿人,我明白這一點。如果我能做到這一點,那將是一個很好的解決方案。不知道把它放在哪裏,因爲jPlayer代碼遍佈全球,只有在從導航欄打開的模式中。我已經更新了這個問題 – fdsaevad

+0

我認爲問題在於音樂播放器是從JavaScript中運行的模式..我如何turbolink永久的? – fdsaevad

+0

我在pjax裏爆炸了,之後就開始了,但是我希望我昨晚能看到你的更新來試試它。儘管如此,我還是發現了幾個論壇帖子,其中人們發佈了與turbolinks類似的問題作爲可能的答案,其中一個包括來自turbolinks的響應,他們表示它不是爲它設計的,並且與pjax一起使用。所以這就是我所做的 – fdsaevad

相關問題