このサイトのトップページは意図的に分割を行っていない。今のところトップページの HTML (+ CSS) のサイズは 100 KB/year (圧縮後) くらいで推移していて、サイズに限って言えば数年は分割しなくても問題ない。許容される Web ページのサイズも年々上昇していくので、一生書き続けたとしてもページ分割が必要ない可能性は高い。
残念ながらこの軽量さは日本語の Web フォントを読み込んでいる (HiDPI 端末のみ) ことで台無しになっている。他のサイトでも使われてキャッシュされていることを期待していたけれど、思ったほど使われていないらしい。特に初期は体感速度も非常に遅かった (私の携帯端末のプランは転送速度 200 Kb/s, 実効速度 100 Kb/s くらいである)。
ということで、ちまちまと細かな改善やちょっとしたハックを仕込んでいた。一段落したのでメモっておく。素晴らしきバッドノウハウ。
font-display: swap
.
<audio preload="none">
.<img width=.. height=..>
で問題ないけれど、サイズ可変の場合にはアスペクト比のみを直接指定する方法が今のところないので工夫が必要。
padding
での %
指定が width
相対であることを利用したトリック。これでプレースホルダを作っておいて、 img
要素は position: absolute
で配置。文章で書くとアレっぽいがやってみるとけっこうシンプル。<img srcset=.. sizes=..>
.
多くは属性を一つ追加する程度で対応できる。フォントのロードに関してはもっとできることがある —— サイト生成時にサブセットフォントを作るとか、 Google Fonts の CSS を JS で自力パーズしてロード、全部揃った時点で適用するとか —— けれど、まあ面倒すぎる。
しかしこれだけシンプルなページでこれなのだから、 Web デザインの人は大変だ…。