Rails Turbolinks를 페이지 단위로 비활성화하는 방법
Turbolinks를 페이지 단위로 비활성화하는 기술 배우기
원래 Turobolinks란?
Turbolinks는 링크를 생성하는 요소인 a 요소의 클릭을 후크로 하고,
이동한 페이지를 Ajax에서 가져옵니다.
그 후, 취득 페이지의 데이터가 천이 전의 페이지와 동일한 것이 있으면 재이용하고,
title · body 요소를 대체하여 표시합니다.
데이터를 재사용하므로 애플리케이션 속도 향상과 같은 성능 향상
할 수 있습니다.
공식 페이지 그러나 jquery와 경쟁하는 경우가 많고 페이지에 따라 끄고 싶습니다!
가능한 방법은 다음 3가지
1, Turbolinks 전체 삭제
2, gem jquery-turbolinks 사용 (Rails4) 또는 솔직하게 turbolinks로 기술
3,Turbolinks를 부분적으로 끄기
1,모든 삭제
우선 전부 지우다(안마 추천은 아닙니다)
* turbolinks는 사귀는 방법에 따라 매우 좋은 사람입니다.
gem 파일에서 turbolinks 항목 삭제
Gemfile
# Use jquery as the JavaScript library
젬 'jquery-rails'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5' ← 여기 코멘트 아웃
# gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
application.js
app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require turbolinks ← 여기 삭제
//= require owl.carousel
//= require_tree.
layout의 application.html.haml
app/views/layouts/application.html.haml
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
'data-turbolinks-track': 'reload' 설명 삭제
turbolinks의 설명을 어쨌든 삭제하면 OK
2, turbolinks로 솔직하게 기술한다 (우선은 여기에서 마주해야한다)
javascript
app/assets/javascripts/script.js
// 첫번째 로딩, 다시 로드, 페이지 전환으로 움직인다.
$(document).on('turbolinks:load', function() { });
// 첫번째 로딩, 페이지 전환으로 움직인다. 리로드는 움직이지 않는다.
$(document).on('turbolinks:render', function() {)});
// 페이지 천이 전에 하고 싶은 처리용. 페이지 전환 또는 재로드로 이동하지 않음
$(document).on('turbolinks:request-start', function() { });avascripts/script.js
coffee의 경우
app/assets/javascripts/script.js
// 첫번째 로딩, 다시 로드, 페이지 전환으로 움직인다.
$(document).on 'turbolinks:load', ->
// 첫번째 로딩, 페이지 전환으로 움직인다. 리로드는 움직이지 않는다.
$(document).on 'turbolinks:render', ->
// 페이지 천이 전에 하고 싶은 처리용. 페이지 전환 또는 재로드로 이동하지 않음
$(document).on 'turbolinks:request-start', ->
Rails5 이상이라면 우선 'turbolinks:load'로 둔다. gem jquery-turbolinks 로딩도 필요하지 않습니다!
3, 부분적으로 끄기 (페이지 당)
views/layouts/application.html.haml의 %body 태그에서 설명 변경
app/views/layouts/application.html.haml
%body
- if content_for?(:body_attributes)
= yield(:body_attributes)
turbolinks를 사용 중지하려는 뷰 페이지에 다음을 추가합니다.
- content_for(:body_attributes) do
data-turbolinks="false"
링크 대상을 turbolinks 끄고 싶다면
%div{"data-turbolinks" => "false"}로 링크 태그 둘러싸기
%div{"data-turbolinks" => "false"}
= link_to "Home", root_path
또는 link_to의 속성에 추가
=link_to new_user_registration_path, class: "btn-def--mail","data-turbolinks": false do
추천은 2번으로 고리고리 기술해 가고 싶은 곳입니다만 잘 가지 않는 경우, 3번이군요~
그럼 이번은 이 정도로.
Reference
이 문제에 관하여(Rails Turbolinks를 페이지 단위로 비활성화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/keitah/items/05f02efe4e11ab2473e8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Rails Turbolinks를 페이지 단위로 비활성화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/keitah/items/05f02efe4e11ab2473e8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)