SlideShare a Scribd company logo
1 of 12
turbolinks攻略
2016.06.24 basic TGIF
後藤 達彦
自己紹介
氏名:後藤 達彦
勤務地:山ラボ
2016年1月入社
好きなもの:HUNTER ☓ HUNTER(久しぶりにジャンプ購読中)
欲しいもの:PS VR
山ラボ唯一の独身
入社してからの業務経歴
■2016/01(入社) gamefeat
■ 02 → ferret Marketer’s STORE
■ 04〜現在 → ferret コンテンツライティング
おおまかな業務内容
Ruby on railsで開発
ferretで初Ruby on rails。
→turbolinksにゴリゴリにハマる。
いまさらかもしれないけど…turbolinksとは
ブラウザ上での表示を高速化してくれるしくみ。
javascript(以下、js)とCSSをリコンパイルさせずに、bodyとtitleとheadだけを更新
するので表示が速いらしい。
Rils4から標準機能になっている。
turbolinksの特徴である…
「jsとCSSをリコンパイルさせずに」ってありましたよね?
もう、ご存知ですよね?
そうです、画面遷移時などにjsが発火しなくなります。
_人人人人人人人人人人人人人_
> jsいうこと聞かない問題 <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
便利な機能、だけど厄介者
安心して、対策はある。
いろいろな方法があります。
今回は「jquery.turbolinks」というgemを導入していました。
どうやら大体のturbolinksでの困り事は解消されるらしい。
これでもう大丈夫!
…と、安心したのも束の間。
テストで画面遷移をしたらjs動かないことが発覚。
jsが再発火しなかった原因とは
formとtableの位置が原因でした。
出力後のHTML
■修正前
<tr><form><td></td></form></tr>
■修正後
<tr><td><form></form></td></tr>
slim上でのプログラミング中は
気が付きにくかった。
気になったこと
試しにturbolinksとjquery.turbolinksを削除して、動作確認を行ってみたところ
修正前のコードでもjsは問題なく再発火しました。
…ということは、、、
ブラウザは許容するけれど、turbolinksとjquery.turbolinksは許容してくれなかった
ということ?
まとめ
gem等は役に立つけど、過信してはいけないということ。
結局のところ、turbolinksは未使用にしてしまうのが無難。
_人人人人人人人人人人人人人人_
> turbolinksは使わない!! <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
ご静聴ありがとうございました。

More Related Content

What's hot

Rubyボードハンズオンテキスト
RubyボードハンズオンテキストRubyボードハンズオンテキスト
Rubyボードハンズオンテキスト三七男 山本
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン三七男 山本
 
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)ShogoOkazaki
 
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~Yuta Sakurai
 
Firefox OSアーキテクチャクイックツアー
Firefox OSアーキテクチャクイックツアーFirefox OSアーキテクチャクイックツアー
Firefox OSアーキテクチャクイックツアーMasami Yabushita
 
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4azumakuniyuki 🐈
 
SDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるSDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるHirokuma Ueno
 
5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing5.6 以前の InnoDB Flushing
5.6 以前の InnoDB FlushingTakanori Sejima
 
2011 10-satalabo-naaon
2011 10-satalabo-naaon2011 10-satalabo-naaon
2011 10-satalabo-naaonNaoki Okino
 
azure botserviceをもっと身近に
azure botserviceをもっと身近にazure botserviceをもっと身近に
azure botserviceをもっと身近に裕之 木下
 
Introduce for sphinx-users-jp
Introduce for sphinx-users-jpIntroduce for sphinx-users-jp
Introduce for sphinx-users-jpGo Yamada
 
NDEF Writerを使ってみよう
NDEF Writerを使ってみようNDEF Writerを使ってみよう
NDEF Writerを使ってみようHirokuma Ueno
 
Mozilla コアハッカー育成計画
Mozilla コアハッカー育成計画Mozilla コアハッカー育成計画
Mozilla コアハッカー育成計画Taro Matsuzawa
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)Takanori Sejima
 
RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)三七男 山本
 
WebMatrix3でwebプログラミング入門 (2013/08/03)
WebMatrix3でwebプログラミング入門 (2013/08/03)WebMatrix3でwebプログラミング入門 (2013/08/03)
WebMatrix3でwebプログラミング入門 (2013/08/03)T. Kodaka
 
マークアップ言語の拡張 メリットとデメリット #hankumi
マークアップ言語の拡張 メリットとデメリット #hankumiマークアップ言語の拡張 メリットとデメリット #hankumi
マークアップ言語の拡張 メリットとデメリット #hankumiTakeshi Komiya
 

What's hot (19)

Rubyボードハンズオンテキスト
RubyボードハンズオンテキストRubyボードハンズオンテキスト
Rubyボードハンズオンテキスト
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン
 
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
 
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
 
Xmlrpcと品詞分解
Xmlrpcと品詞分解Xmlrpcと品詞分解
Xmlrpcと品詞分解
 
Memcache Queue
Memcache QueueMemcache Queue
Memcache Queue
 
Firefox OSアーキテクチャクイックツアー
Firefox OSアーキテクチャクイックツアーFirefox OSアーキテクチャクイックツアー
Firefox OSアーキテクチャクイックツアー
 
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
 
SDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみるSDK for NFC Starter Kit(2) 使ってみる
SDK for NFC Starter Kit(2) 使ってみる
 
5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing
 
2011 10-satalabo-naaon
2011 10-satalabo-naaon2011 10-satalabo-naaon
2011 10-satalabo-naaon
 
azure botserviceをもっと身近に
azure botserviceをもっと身近にazure botserviceをもっと身近に
azure botserviceをもっと身近に
 
Introduce for sphinx-users-jp
Introduce for sphinx-users-jpIntroduce for sphinx-users-jp
Introduce for sphinx-users-jp
 
NDEF Writerを使ってみよう
NDEF Writerを使ってみようNDEF Writerを使ってみよう
NDEF Writerを使ってみよう
 
Mozilla コアハッカー育成計画
Mozilla コアハッカー育成計画Mozilla コアハッカー育成計画
Mozilla コアハッカー育成計画
 
さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)さいきんの InnoDB Adaptive Flushing (仮)
さいきんの InnoDB Adaptive Flushing (仮)
 
RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)
 
WebMatrix3でwebプログラミング入門 (2013/08/03)
WebMatrix3でwebプログラミング入門 (2013/08/03)WebMatrix3でwebプログラミング入門 (2013/08/03)
WebMatrix3でwebプログラミング入門 (2013/08/03)
 
マークアップ言語の拡張 メリットとデメリット #hankumi
マークアップ言語の拡張 メリットとデメリット #hankumiマークアップ言語の拡張 メリットとデメリット #hankumi
マークアップ言語の拡張 メリットとデメリット #hankumi
 

Viewers also liked

Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応basicinc_dev
 
Have fun-with-ruby
Have fun-with-rubyHave fun-with-ruby
Have fun-with-rubybasicinc_dev
 
川又康平 20160428
川又康平 20160428川又康平 20160428
川又康平 20160428basicinc_dev
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜbasicinc_dev
 
悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regexbasicinc_dev
 
マーケティング視点でのデザイン
マーケティング視点でのデザインマーケティング視点でのデザイン
マーケティング視点でのデザインbasicinc_dev
 
インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!basicinc_dev
 
Linuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたLinuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたbasicinc_dev
 
Ruby under the hood
Ruby   under the hoodRuby   under the hood
Ruby under the hoodbasicinc_dev
 
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜basicinc_dev
 
構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れるbasicinc_dev
 
画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvasbasicinc_dev
 
Mini magickでの画像合成
Mini magickでの画像合成Mini magickでの画像合成
Mini magickでの画像合成Yoshiki Kobayashi
 
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~basicinc_dev
 
エンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものエンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものbasicinc_dev
 
メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策basicinc_dev
 
AWS VPC ~インフラエンジニアへの道~
AWS VPC ~インフラエンジニアへの道~AWS VPC ~インフラエンジニアへの道~
AWS VPC ~インフラエンジニアへの道~basicinc_dev
 

Viewers also liked (20)

Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応Safe stringにgsubを実行できるように対応
Safe stringにgsubを実行できるように対応
 
無名関数のすすめ
無名関数のすすめ無名関数のすすめ
無名関数のすすめ
 
Have fun-with-ruby
Have fun-with-rubyHave fun-with-ruby
Have fun-with-ruby
 
川又康平 20160428
川又康平 20160428川又康平 20160428
川又康平 20160428
 
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜHUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
HUで6000万pvのトラフィックを捌くまでに起ったことをありのままに話すぜ
 
悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex悪いRegexと良いregexと最良regex
悪いRegexと良いregexと最良regex
 
Yamakado 20160428
Yamakado 20160428Yamakado 20160428
Yamakado 20160428
 
マーケティング視点でのデザイン
マーケティング視点でのデザインマーケティング視点でのデザイン
マーケティング視点でのデザイン
 
インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!インフラ(Aws)覚えたいそんなあなたへ!
インフラ(Aws)覚えたいそんなあなたへ!
 
Linuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたLinuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみた
 
Zaru 20160428
Zaru 20160428Zaru 20160428
Zaru 20160428
 
Ruby under the hood
Ruby   under the hoodRuby   under the hood
Ruby under the hood
 
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
君に届け!〜カテゴライズしたユーザーにメッセージを送る〜
 
構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる構造化データマークアップでステキな検索結果を手に入れる
構造化データマークアップでステキな検索結果を手に入れる
 
画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas画像処理アルゴリズム入門とcanvas
画像処理アルゴリズム入門とcanvas
 
Mini magickでの画像合成
Mini magickでの画像合成Mini magickでの画像合成
Mini magickでの画像合成
 
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
Js初心者だった僕が武器を手に入れるまで ~ fall in love with react ~
 
エンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たものエンジニアがチームで数字を追って得たもの
エンジニアがチームで数字を追って得たもの
 
メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策メール送信におけるスパム認定のリスクと対策
メール送信におけるスパム認定のリスクと対策
 
AWS VPC ~インフラエンジニアへの道~
AWS VPC ~インフラエンジニアへの道~AWS VPC ~インフラエンジニアへの道~
AWS VPC ~インフラエンジニアへの道~
 

turbolinks攻略