blog.bouzuya.net

2015-04-10 レンダリングブロックの回避をためした

レンダリングブロックについて

今日は JavaScript / CSS の遅延読み込みを実装した。そんなに複雑なものではなくて、あとから link 要素や script 要素を追加するだけのもの。

モバイル端末向けの Single Page Application で初回起動時にすべてのデータを転送するようなものをつくっていたのだけど、JavaScript や CSS のサイズが大きくて 3G 回線などで数秒間何も描画されず、真っ白になることに気づいた。

いわゆるレンダリングブロックというものらしく、読み込みが完了するまでレンダリングがブロックされるもの。都合が良い場面もあるのだけど、今回のようなファイルサイズになるとちょっと考えものだ。

そこで、まずは小さい CSS (ローディングの通知を表示) と小さい JavaScript (他の CSS / JavaScript を読み込む) を読み込んで、そこから遅延させたものを読み込むようにした。

全体時間 (すべての読み込みが完了するまでの時間) としては増えるのだけど、体感時間 (レンダリングされるまでの時間) としては減ったように思う。

これに際してちょうど良い gulp プラグインなどが見当たらないのだけど、みんな組み合わせてやっているのかな。JavaScript を一括でまとめるようなものはあっても、まとめて rev つけたものを遅延でとかあんまり見ない気がする。

週ぶり (shuburi) 2015-W15

bouzuya/torzder 。手元では再生の制御まで進んでいるのだけど、まだ公開していない。

date week day repos
2015-04-06 X (2 commits) X (+2 commits ) hubot-idcf-vm-auto-stop
2015-04-07 X (2 commits) X (+0 commits ) -
2015-04-08 X (3 commits) X (+1 commits ) torzder
2015-04-09 X (3 commits) X (+0 commits ) -
2015-04-10 X (3 commits) X (+0 commits ) -

よもやまばなし

アップル、新MacBookを発売。当初はオンライン限定、税別14万4800円から - Engadget Japanese 12インチの新型「MacBook」、今日は発売されない?! | 気になる、記になる…

朝の「発売されない」のニュースで笑ったけど、どうやら無事に発売されたようだ。