Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Performance in CSS

Yuya Saito
September 09, 2014

Performance in CSS

これまでパフォーマンスと言ったら、どちらかというとネットワーク、いわゆるページの読み込み速度の改善にフォーカスして来ていると思います。

もちろん、かけるコストに対して最もリターンが大きいのがネットワーク・パフォーマンスの改善です。

今回はCSSなトピックで話をしていく勉強会ということもあり、そろそろ次のステップを見据えて準備運動を始めてもいいだろうと思う頃、と勝手に判断して、CSSにまつわるレンダリング・パフォーマンスにフォーカスしてお話していきます。

Yuya Saito

September 09, 2014
Tweet

More Decks by Yuya Saito

Other Decks in Programming

Transcript

  1. <html> <head> <body> <p> <span> Hello World p { font-weight:

    bold; } span { display: none; } CSSOM CSS Object Model
  2. “ For the most part we’ll be trying to get

    to 60fps in our work, and that normally means understanding what the browser’s doing and optimizing for it. — Paul Lewis
  3. <div> <ul> <li> <header> <div> <footer> <h3> <a> <p> <a>

    Ϋϥεͷมߋ ͜ͷཁૉΛมߋ͍ͨ͠
  4. <div> <ul> <li> <header> <div> <footer> <h3> <a> <p> <a>

    Ϋϥε/ελΠϧͷมߋ ͜ͷཁૉΛมߋ͍ͨ͠
  5. // Read var h1 = element1.clientHeight; ! // Write (invalidates

    layout) element1.style.height = (h1 * 2) + 'px'; ! // Read (triggers layout) var h2 = element2.clientHeight; ! // Write (invalidates layout) element2.style.height = (h2 * 2) + 'px'; ! // Read (triggers layout) var h3 = element3.clientHeight; ! // Write (invalidates layout) element3.style.height = (h3 * 2) + 'px';
  6. // Read var h1 = element1.clientHeight; var h2 = element2.clientHeight;

    var h3 = element3.clientHeight; ! // Write (invalidates layout) element1.style.height = (h1 * 2) + 'px'; element2.style.height = (h2 * 2) + 'px'; element3.style.height = (h3 * 2) + 'px';
  7. “ To me, performance is a feature […]. I think

    there’s also a lesson to be learned here about the competitive landscape of the public internet, where there are two kinds of websites: the quick and the dead. — Jeff Atwood, Coding Horror