5

Turbolinks 2.5.3을 사용하고 있으며 홈 페이지 하단에 스크립트 태그가 있습니다. 내가 홈 페이지를 방문 할 경우Turbolinks가 자바 스크립트를 여러 번로드합니다.

Turbolinks.pagesCached(0); 

는 경고가 한 번 나타납니다 : 사이트의 모든 페이지에 대한

<script> 
    $(document).ready(function() { 
    alert('hello'); 
    }); 
</script> 

, 나는 다음과 같은 JS를 실행합니다. 뒤로 버튼을 누르고 브라우저의 앞으로 버튼을 누르면 홈 페이지가로드되고 두 개의 경고가 나타납니다. 이 과정을 다시 반복하면 세 가지 경고가 나타납니다. 내가 명시 적으로하지에 말했을 때

왜 Turbolinks가 페이지를 캐싱 :

여기 내 질문입니다. 문서 준비 이벤트 리스너를 변환하는 Turbolinks와 관련이 있습니까? 이 문제를 해결하여 매번 한 번만로드합니까?

+0

왜 당신이 사용하는'pagesCached (0) 'on 모든 페이지? –

답변

1

<script> 
    $(document).ready(function() { 
    if (alert('hello')) { 
    } 
    else { 
    alert('hello'); 
    } 
    }); 
</script> 
+0

'alert ('hello')가 내 코드에서 실제로 사용되지 않기 때문에 가능한 해결책은 아닙니다. 나는 그것을 단순하게하기 위해 추가했다. – jason328

1

를 사용하여 뭔가를 시도 이것에 대한 부하에 대신

$(document).on('ready page:load', function() { 

https://github.com/turbolinks/turbolinks-classic#events

+0

죄송합니다.이 경우에도 양식이 두 번 이상로드됩니다. – jason328

+0

'ready '부분을 제거하면 어떨까요? –

+0

아니, 같은 결과. 경고가 두 번로드됩니다. – jason328

1

사용 turbolinks:load

<script> 
    $(document).on('turbolinks:load',function() { 
    alert('hello'); 
    }); 
</script> 
+0

아쉽게도이 코드에는 경고가 전혀 표시되지 않습니다. – jason328

+0

이것은 터보 링크 5에서는 정확하지만 2.5.3에서는 정확하지 않습니다. –

관련 문제