Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Turbolinks 101
Search
Alessandro Dias Batista
September 19, 2015
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Turbolinks 101
Alessandro Dias Batista
September 19, 2015
More Decks by Alessandro Dias Batista
See All by Alessandro Dias Batista
Usando agentes de IA no ambiente de desenvolvimento
adbatista
0
20
Aplicações Real-time com Phoenix LiveView
adbatista
0
29
Aprenda http criando seu server
adbatista
0
30
GURUPI - Conhecendo Phoenix Liveview
adbatista
0
26
Ciclo de trabalho Ágil
adbatista
1
65
Ruby e o Mercado de trabalho
adbatista
0
210
Other Decks in Programming
See All in Programming
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
190
自作OSでスライド発表する
uyuki234
1
3.6k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
830
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
180
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
0
510
Contextとはなにか
chiroruxx
1
390
どこまでゆるくて許されるのか
tk3fftk
0
350
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
0
400
Webフレームワークの ベンチマークについて
yusukebe
0
200
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
360
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
100
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
380
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Leo the Paperboy
mayatellez
8
1.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
310
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
180
The Spectacular Lies of Maps
axbom
PRO
1
850
The untapped power of vector embeddings
frankvandijk
2
1.8k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
300
Transcript
Turbolinks 101 Alessandro Dias Codeminer42 adbatista @adbatista1
None
None
Turbolinks 101
Vamos falar de uma preocupação do desenvolvedor WEB
Como acelerar o carregamento de páginas
None
#= require jquery #= require jquery_ujs #= require_tree app
#= require jquery #= require jquery_ujs #= require_tree app #=
require pickadate/picker #= require pickadate/picker.date #= require select2 #= require jquery.slick #= require jquery.scrollTo #= require jquery-maskedinput #= require refile #= require components/modal
#= require jquery #= require jquery_ujs #= require_tree app #=
require pickadate/picker #= require pickadate/picker.date #= require select2 #= require cocoon #= require jquery.slick #= require jquery.scrollTo #= require jquery-maskedinput #= require refile #= require jQuery.toggleModifier #= require helpers/toggle_element #= require helpers/token_fields #= require helpers/hide_if #= require helpers/carousel #= require helpers/cocoon #= require helpers/pickadate_translate #= require helpers/pickadate #= require helpers/error_fields #= require helpers/sticky_header #= require helpers/mask_fields #= require components/accordions #= require components/tabs_navigation #= require components/modal #= require components/rounds_navigation #= require components/preview_upload #= require components/social_buttons #= require pages/tournament_creation #= require pages/tournaments #= require pages/player #= require page_control
Como funciona uma requisição de página ?
None
/users
/users
O que fazer?
Carregamento especulativo
Single Page Frameworks
Single Page Frameworks • É para Single Page applications; •
Dificulta SEO e acessibilidade; • Precisa de uma camada de API;
PJAX
Pjax • Configurável; • Boa performance; • Depende do JQuery;
• Precisa alterar o controller para retornar o conteúdo especifico;
Turbolinks
Turbolinks • Desenvolvida pela Basecamp (antiga 37Signals); • Usado na
versão mobile do campfire; • Simples de add na app; • Não precisa de alteração no backend; • Executa full page load em navegadores incompatíveis;
gem ‘turbolinks’ //= require jquery //= require turbolinks stylesheet_link_tag 'application',
media: 'all', 'data-turbolinks- track' => true javascript_include_tag 'application', 'data-turbolinks-track' => true
Turbolinks avalia todos scripts retornados dentro do body É recomendado
mover todos scripts para o <head>
Mas eu realmente preciso adicionar scripts dentro do <body>
<script data-turbolinks-eval=false>
E se eu quiser desabilitar o Turbolinks para algum link
especifico?
<a ... data-no-turbolink>
Turbolinks + JQuery
Turbolinks + JQuery $(document).on('page:load', function(){ .... });
Mas minha app já tem vários JQuery.ready...
gem ‘jquery-turbolinks’ //= require jquery //= require jquery.turbolinks //= require
jquery_ujs // ... your other scripts here ... //= require turbolinks
None
Turbolinks + libs externas http://reed.github.io/turbolinks-compatibility/
None
None
None