2016-12-14 5 views
0

저는 Rails 4 앱을 만들고 Turbolinks Classic (아직 Turbolinks 5로 업그레이드하지 않음)을 사용하고 있습니다. 페이지에서 JS 이벤트를 발생시키는 Turbolinks (고전) : 가져 오기

나는 새 페이지를로드 할 때 내 페이지에 스피너 애니메이션을 추가하고 싶었, 나의 JS 파일에 내가 추가 :

#main 내 응용 프로그램의 핵심의 컨테이너입니다
$(document).on "page:fetch", -> 
    $("#main").html("<div class='page-loader-container'><div class='spinner spinner-primary'></div></div>") 

.

이것은 링크에서 링크로 이동할 때 유용합니다. 터보 링크가 터지면 터보 링크가 새로운 콘텐츠를 얻게되면서 모든 것이 바뀝니다.

그러나 브라우저의 뒤로 단추를 사용하면 회 전자가 표시되지만 캐시 된 HTML은 페이지를 바꿀 수 없습니다.

나는 Turbolinks 문서뿐 아니라 jQuery 플러그인 문서도 살펴 봤지만이를 이해할 수는 없다.

Turbolinks가 실제로 새 페이지를 가져올 때 내 스피너 코드 만 실행하려고합니다. 캐시에서 페이지를로드 할 때 너무 빨리 사용자가 알림을받을 필요가 없으므로 회 전자가 필요하지 않습니다.

업데이트 2016년 12월 14일 13시 40분

내가 진행률 표시 줄이 내가 기대하는 것처럼 작동 Turbolinks.enableProgressBar(); 사용 : 새 페이지를 선택할 때로드하지만, 캐시 된 페이지를로드 할 때 전혀 표시되지 않습니다 . 나는 그것을 현재 사용하고 있으며 그것은 "작동한다".

그러나 나는 소스 코드를 파고 들어서 진행 막대의 이벤트를 처리하는 방법을 알고 싶습니다. 왜냐하면 그 것들이 내 회 전자에 사용하려는 동일한 이벤트라고 생각하기 때문입니다.

답변

0

이 github 페이지는 README 파일에 자세히 설명되어 있습니다. 페이지 캐시 부분이고이 특히 도움이 될 궁금 :

https://github.com/turbolinks/turbolinks-classic#page-cache

은 또한 이벤트 테이블이 멋지다라고 생각했다. (페이지 캐쉬 위 몇 절)

+0

@Igroschen : 답변을 주셔서 감사합니다. 그러나 문서 페이지를 이미 읽었으므로 문제가 해결되지 않았습니다. 나는 엘리먼트를 대체하는 대신에 엘리먼트의 멋진 보이기/숨기기를 끝내야 할 수도있다. –

+0

그래, 단락이 도움이되기를 바랬지 만 Turbolinks 5에 갈 수있는 옵션이있을 것입니다. 내가 더 많은 도움이되지 못해서 미안하다고 생각하길 바래. – lgroschen