2017-05-04 13 views
0

저는 첫 번째 사이트에서 일하고있는 newb입니다. 백그라운드에서 음악 플레이어를 계속 실행하려면 아약스를 통해 각 페이지를로드 할 계획이지만 뒤로 버튼 기능을 사용하여이를 수행하는 방법을 연구하고 있습니다.Rails5에도 rack_pjax를 적용 할 수 있습니까?

저는 아약스와 파이 팍스와 관련된 대부분의 튜토리얼은 5-6 세입니다. pjax와 rack-pjax rails gem이 여전히 적용 가능한지 궁금합니다.

+0

방금 ​​배우는 경우 좀 더 반응적인 솔루션에서 더 많은 마일리지를 얻을 수 있습니다. –

+0

고맙습니다. 나는 단지 하나의 사이트를 쓰려고합니다 :) 당신은 그것이 실행 가능한 해결책이라고 말하고 있습니다. – fdsaevad

+0

당신이 묻고있는 것이면 기술은 여전히 ​​작동 할 것입니다. 나는 당신의 유스 케이스에 대해 한번도 시도한 적이 없지만 터보 링크가 충분할 수도 있습니다 ... –

답변

0

turbolinks이 이미 가능하기 때문에 이것을 수행하려면 pjax이 필요하지 않습니다.

Turbolinks을 사용하면 특정 요소를 으로 영구적 인으로 표시 할 수 있습니다. 영구 요소는 페이지로드 전체에 걸쳐 유지되므로 탐색 후에 요소에 적용한 모든 변경 사항을 다시 적용 할 필요가 없습니다.

<div id="music-player" data-turbolinks-permanent>...</div> 
https://github.com/turbolinks/turbolinks#persisting-elements-across-page-loads

업데이트 :

당신이 고유 ID가 있어야 할 data-turbolinks-permanent 속성을 추가 요소는, 그렇지 않으면 작동하지 않습니다.

영구 요소를 지정하려면 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

문제는 음악 플레이어가 모달의 자바 스크립트에서 실행된다는 것입니다. 어떻게 영구적 인 터보 링크를 수행합니까? – fdsaevad

+0

나는 pjax에 불을 질렀고, 그 후 계속 전진했다. 그러나 나는 그것을 시험해보기 위해 지난 밤에 당신의 갱신을 보았 더라면 좋겠다고 생각한다. 여전히, 사람들이 터보 링크로 비슷한 질문을 올린 몇 가지 포럼 게시물을 발견했습니다. 터보 링크의 응답을 포함하여 가능한 답변으로, 그리고 그것을 위해 설계되지 않았고 pjax로 이동하는 것을 포함합니다. 그래서 그게 내가 한 짓이야. – fdsaevad