turbolinks 攻攻 2016.06.24 basic TGIF 後後 後後
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 ̄
ご静聴ありがとうございました。