Skip to content

Instantly share code, notes, and snippets.

@tai2
Last active August 29, 2015 14:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tai2/11366229 to your computer and use it in GitHub Desktop.
Save tai2/11366229 to your computer and use it in GitHub Desktop.
ウルフギャングのチューニング過程まとめ

ウルフギャングのチューニング過程まとめ

デザイナーと二人組で超チューニング祭に参加しました。速度面での最終順位は7位でした。デザイナー視点でのまとめは、こちら http://blog.mikiishijima.com/cho-tuning-fes/

コミットログはこちら https://github.com/tai2/nicohaya/commits/master

主に使ったツールは、ChromeのDeveloper Tools,PageSpeed Insights,YSlowぐらい。

1日目

  1. DevToolsのNetworkで、jquery.min.mapが404でエラーになってるのに気付く この時点でmapファイルがなんのためのものなのかわかってなかったが、気持ち悪いので、エラーなしの状態にしたかった。jqueryをGoogleがホストしてるものに変更することで解消。(のちのち、mapファイルについて調べて、測定時には不要とわかったので、disableにした)。
  2. レギュレーション上、必要広告数は2つなので、3つあった広告のうちひとつを削除。
  3. categoryalliance.jsというのが広告に関するなにからしかったが、使ってなさそうなので除去。
  4. jsCacheの導入
    1. HTTPヘッダを見ると、画像のローカルキャッシュが効いてないのが気になった。304 Not modifiedなのでデータ転送はないが、リクエスト・レスポンス自体は発生してた。
    2. サーバーがApacheなら、.htaccessでリクエストしないようにできるかもと思って調査したが、サーバーnginxで、レスポンスヘッダ変更するのできなさそうだったので断念。
    3. どうにかして画像をキャッシュにできないか頭を捻った結果、画像をbase64化して、localStorageに入れるという方法を思い付く。ググったら、それをやってくれるjsCacheというライブラリを見付けたので、branch切って、検証開始。
    4. とりあえず動作確認できたあたりで、まだ午前。どうしてもコーヒー飲みたかったので、しばらく展示みながら会場ウロウロ。
    5. jsCacheをすこし導入してみて、有効性に疑問を持ちはじめたあたりで、一日目終了。jsCache導入しても、省略できるのは、ボディなしのリクエスト・レスポンスだけだし、Keep-Aliveもちゃんと効いてるので、たいした効果ないとか、逆にbase64化されることでコスト上がってるかも?とか。Dev Toolsも使いかたもあまり慣れてないので、NetworkとかTimeline見てもいまいち自信が持てず。
    6. ホテルに帰ってからも、ビール飲みながら、引き続きjsCacheへの置き換え作業。悩んだが、jsCacheでいくことを決断。途中、jsCacheのバグらしきもののworkaroundを考えたり、使い勝手悪い部分を修正するなどして、深夜までかけて導入完了。
    7. CSSのbackgroundのままだと、jsCacheに入れられないので、いくつかimgタグにしてもらうようにデザイナーに依頼。
  5. InsigtsやYSlowの結果で出たものをちょこちょこ修正(scriptタグをbodyタグの下のほうに移したり)。CSS Spriteというのを導入しろというアドバイスが出てたので、調べて、デザイナーに導入できるか聞いたところ、できるということだったので、やってもらう。
  6. モバイルで表示したときのバルーンも、レギュレーションになかったので削除。

js,cssのminifyは一番最後にまとめてやればいいと思ってたので、一日目は手をつけなかった。

2日目

  1. urchin.js,nikapi.jsなどは使ってなさそうだったので削除。
  2. js,cssのminify(ググって上に出てきたサービスを使用)。htmlのminifyもしたかったが、どうしても表示崩れおこしてしまって断念。
  3. jquery,common.jsをjsCacheでキャッシュ化。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment