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 入門
Search
蒼時弦や
December 02, 2016
Programming
2
350
Turbolinks 入門
Ruby Conf Taiwan 2016 簡報
蒼時弦や
December 02, 2016
Tweet
Share
More Decks by 蒼時弦や
See All by 蒼時弦や
2023 - RubyConfTW - Rethink Rails Architecture
elct9620
0
47
20230916 - DDDTW - 導入 Domain-Driven Design 的最佳時機
elct9620
0
280
2023 - WebConf - 選擇適合你的技能組合
elct9620
0
490
20230322 - Generative AI 小聚 ft. Happy Designer
elct9620
0
250
2022 - 默默會 - 重新學習 MVC 的 Model
elct9620
1
370
MOPCON 2022 - 從 Domain-Driven Design 看網站開發框架隱藏
elct9620
1
400
2022 - COSCUP - 我想慢慢寫程式該怎麼辦?
elct9620
0
200
2022 - COSCUP - 打造高速 Ruby 專案開發流程
elct9620
0
220
2021 - RubyKaigi - It is time to build your mruby VM on the microcontroller?
elct9620
0
170
Other Decks in Programming
See All in Programming
What We Can Learn From OSS
inouehi
0
430
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
120
GraphQLサーバの構成要素を整理する #ハッカー鮨 #tsukijigraphql / graphql server technology selection
izumin5210
4
890
敵対的ポイフル
futabato
0
120
AmperとFleetを使ったAndroidアプリ
yoppie
0
240
Polars入門
daikikatsuragawa
1
160
Build Apps for iOS, Android & Desktop in 100% Kotlin With Compose Multiplatform (mDevCamp 2024)
zsmb
0
420
PHPはいつから死んでいるかの調査
chiroruxx
2
410
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
430
Next.js App Router
quramy
11
1.5k
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
380
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
19
6.9k
Docker and Python
trallard
35
2.7k
GitHub's CSS Performance
jonrohan
1025
450k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Producing Creativity
orderedlist
PRO
338
39k
Navigating Team Friction
lara
179
13k
Side Projects
sachag
451
41k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Building Applications with DynamoDB
mza
88
5.6k
Transcript
Turbolinks 入門
WEB GENERATOR GAME DEVELOPER 襟 儘 䓛⛳ @elct9620
None
技術原理 Turbolinks API 效果展示 Turbolinks 入門
Turbolinks 是基於 HTML5 的 History API 所實現 的技術。 技術原理
在過去 History API 只用於切換上一頁或者下一頁。 技術原理
Turbolinks API history.back(); history.forward(); 原始的 History API
HTML5 新增的 pushState 功能則讓我們可以對瀏 覽紀錄進行操作。 技術原理
技術原理
技術原理
技術原理
技術原理
技術原理 var newState = { pageName: 'New Page', controller: 'acticle',
id: '1' }; window.history.push( newState, newState.pageName, "/article/1");
技術原理
技術原理
另外還有 popState 跟 history.state 可以讓我們存 取和捕捉目前的狀態。 技術原理
Turbolinks 是受到 PJAX 技術的影響產生的產物。 技術原理
技術原理
技術原理
很多時候我們在使用 Rails 會把 Turbolinks 關閉, 因為跟 JavaScript 常常出現衝突。 不過這只是因為沒有了解 Turbolinks
的使用方式而 已。 Turbolinks API
Turbolinks API <a href="https://google.com" data-turbolinks=“false"> Google </a> 取消 Turbolinks 效果
Turbolinks API <script data-turbolinks-eval=“false" src="// cdn.example.js/pixel.js"></script> 限制 JavaScript 重複執行
Turbolinks API <link href="/assets/style-201611041620.css" data- turbolinks-track="reload" rel="stylesheet"/> 追蹤 Assets 更新並且重新載入
Turbolinks API <meta name="turbolinks-root" content="/app"> 限定 Turbolinks 生效範圍
Turbolinks API <meta name="turbolinks-cache-control" content="no- cache"> 取消頁面快取
Turbolinks API <div id="shared" data-turbolinks-permanent>1 items</ div> 跨頁面共享元素
Turbolinks API .turbolinks-progress-bar { height: 5px; background-color: green; } 顯示進度條
雖然透過屬性的設定可以做到不少調整,但是與 JavaScript 搭配的時候,還是需要能夠相互搭配才 行。 Turbolinks API
Turbolinks API $(document).ready(function() { // OnLoad... }); 大多數時候我們會在 jQuery 的
ready() 做處理
Turbolinks API $(document).on("turbolinks:load, function(){ // OnLoad... }); 不過在 Turbolinks 要改用
Turbolinks 的 load 事件
jQuery.ready => 頁面讀取觸發 Turbolinks:load => 替換頁面時觸發 Turbolinks API
jQuery.ready => 頁面讀取觸發 Turbolinks:load => 替換頁面時觸發 Turbolinks API
jQuery.ready => 頁面讀取觸發 Turbolinks:load => 替換頁面時觸發 Turbolinks API
Turbolinks API Turbolinks.visit('/edit/1'); 觸發 Turbolinks 換頁
Turbolinks API Turbolinks.visit('/edit/1', {action: 'replace'}); 用 replaceState 方式換頁
Turbolinks API Turbolinks.clearCache(); 清除快取
Pinterest 效果 DEMO 時間
None