Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Turbolinks 101
Search
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
31
Aplicações Real-time com Phoenix LiveView
adbatista
0
37
Aprenda http criando seu server
adbatista
0
33
GURUPI - Conhecendo Phoenix Liveview
adbatista
0
30
Ciclo de trabalho Ágil
adbatista
1
66
Ruby e o Mercado de trabalho
adbatista
0
220
Other Decks in Programming
See All in Programming
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
330
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
250
Are APIs Still Relevant in the AI Era?
soyuka
0
450
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.2k
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
370
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
460
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
16k
JRuby: Past, Present, and Future
headius
0
230
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.7k
wkhtmltopdfの次どうするか問題2026
willnet
2
1.9k
最近”作らせてる” ローカルAIアプリの話
akit37
0
440
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
My Coaching Mixtape
mlcsv
0
350
Chasing Engaging Ingredients in Design
codingconduct
0
350
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
Making Projects Easy
brettharned
120
6.8k
ラッコキーワード サービス紹介資料
rakko
1
5.3M
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Between Models and Reality
mayunak
4
490
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
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