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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Alessandro Dias Batista
September 19, 2015
Programming
130
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
25
Aplicações Real-time com Phoenix LiveView
adbatista
0
30
Aprenda http criando seu server
adbatista
0
30
GURUPI - Conhecendo Phoenix Liveview
adbatista
0
27
Ciclo de trabalho Ágil
adbatista
1
65
Ruby e o Mercado de trabalho
adbatista
0
220
Other Decks in Programming
See All in Programming
React本体のコードリーディング
high_g_engineer
1
150
Building a Meta Ray-Ban display app
akkeylab
0
180
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
160
VibeCodingからAgenticWorkflowへ
starfish719
0
760
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
270
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
5.1k
源内ハンズオン概要編
hideg
0
210
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
220
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
220
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
590
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
220
What's New in Android 2026
veronikapj
0
270
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
520
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
500
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Paper Plane
katiecoart
PRO
2
53k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.9k
From π to Pie charts
rasagy
0
320
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