我是一個在我的第一個網站工作的新手。我打算讓每個頁面通過ajax加載,以便讓音樂播放器在後臺運行不變,但我想要後退按鈕功能,因此我正在研究如何實現這一功能。Rack_pjax仍然適用於Rails5嗎?
我發現大多數與ajax和pjax有關的教程都是5-6歲;我只是想知道,如果pjax和rack-pjax導軌寶石仍然適用,謝謝
我是一個在我的第一個網站工作的新手。我打算讓每個頁面通過ajax加載,以便讓音樂播放器在後臺運行不變,但我想要後退按鈕功能,因此我正在研究如何實現這一功能。Rack_pjax仍然適用於Rails5嗎?
我發現大多數與ajax和pjax有關的教程都是5-6歲;我只是想知道,如果pjax和rack-pjax導軌寶石仍然適用,謝謝
您不需要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
所有的永久的成分,並將它們傳送從原來的頁面,新的頁面,保存他們的數據和事件偵聽器。
嘿人,我明白這一點。如果我能做到這一點,那將是一個很好的解決方案。不知道把它放在哪裏,因爲jPlayer代碼遍佈全球,只有在從導航欄打開的模式中。我已經更新了這個問題 – fdsaevad
我認爲問題在於音樂播放器是從JavaScript中運行的模式..我如何turbolink永久的? – fdsaevad
我在pjax裏爆炸了,之後就開始了,但是我希望我昨晚能看到你的更新來試試它。儘管如此,我還是發現了幾個論壇帖子,其中人們發佈了與turbolinks類似的問題作爲可能的答案,其中一個包括來自turbolinks的響應,他們表示它不是爲它設計的,並且與pjax一起使用。所以這就是我所做的 – fdsaevad
如果你只是在學習,你可能會得到更多的里程,更多的反應式解決方案... –
我明白這一點。我只打算寫一個網站:)你說這是一個可行的解決方案,然後 – fdsaevad
如果這就是你要求的技術將仍然工作。我從來沒有嘗試過你的用例,但它可能有可能turbolinks可能已經足夠... –