タグ

DOMとCSSに関するn2sのブックマーク (9)

  • Webページ高速化に必須の知識!ブラウザがWebページをどのようにレンダリングしているか、図を用いて解説

    ブラウザがWebページをどのようにレンダリングしているか、図を用いてやさしく解説した記事を紹介します。 レンダリングの仕組みを理解することで、HTMLCSSJavaScriptなど実装時にも気をつける点があります。 How the browser renders a web page by James Starkie 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに 1. HTMLの解析(パース)を開始する 2. 外部リソースを取得する 3. CSSを解析し、CSSOMを構築する 4. JavaScriptを実行する 5. DOMとCSSOMをマージしてレンダリングツリーを構築する 6. レイアウトとペイントを計算する はじめに 私の考えとしては、高速で信頼性の高いWebサイトを構築するには、実装中に各ステップを最適

    Webページ高速化に必須の知識!ブラウザがWebページをどのようにレンダリングしているか、図を用いて解説
  • ブラウザレンダリング入門〜知ることで見える世界〜 - Qiita

    はじめに 『レンダリングの仕組みなんて知らなくても、ブラウザが勝手にやってくれるじゃん!』 当時駆け出しのエンジニアだった私はそう思っていました。 実際、当時の私はレンダリングの『レ』の字も知りませんでしたが、特に業務上で問題はありませんでした。 しかし、その時は突然訪れました。 クライアントの要望でアニメーションを多彩に取り入れた案件を実装した際に、テスト段階で一部ブラウザ(S○f○ri、E○ge)でアニメーションがひどい状況になっていることが発覚しました。 (開発中はChromeで確認を行っており、Chromeでは特に問題はなかったので発覚が遅れました。) それからは、狂ったようにパフォーマンスの改善方法をググり、修正する日々が続きました。(最終的には、なんとかマルチブラウザでの動作も担保し、納品まで完了しました。) その案件が落ち着いた後、改めて自分の調べたことを振り返ると、局所的な

    ブラウザレンダリング入門〜知ることで見える世界〜 - Qiita
  • 仮想スクロールのすヽめ - Qiita

    平日の早朝に道玄坂を下るアベックに破滅と滅亡を。どうも、@neer_chanです。 皆さん、仮想スクロールしてますか? 概要 仮想スクロールとは 仮想スクロールの仕組み 仮想スクロールの魅力 前提として、縦スクロールの話をします。 仮想スクロールとは GIFの通り、見えている範囲(+α)のみレンダリングするもの。 要は、ロケット鉛筆みたいなものです。(絶対に違う) 仮想スクロールの仕組み イカれたメンバーを紹介するぜ! 見える範囲を指定するためのDiv スクロールする高さを指定するDiv ListItemを置くUnorderdList いつかの、いくつかのきみとListItem 以上の4つが登場するメンバーだ! ちなみに、通常のスクロールの場合は2の役割を3が行う感じになります。 また、以下の要素をあらかじめ指定する必要があります。 見える範囲に表示する4のListItemの個数(あるいは

    仮想スクロールのすヽめ - Qiita
    n2s
    n2s 2019/02/19
    TwitterやTumblr(id:entry:199467470)でもやってるやつかな。ただただ広げっぱなしではDOMツリーが肥大化してメモリも浪費するけど、仮想スクロールは片方で巻き取っていく、まさに巻物的なやつ。
  • ブラウザエンジン先端観測会 アウトラインメモ

    ブラウザエンジン先端観測会 : ATND に参加してきたのでメモ。 途中から参加なのでServoの話は途中からです。 Twitterのログはこちら ブラウザエンジン先端観測会 #1 - Togetterまとめ Servo (by Tetsuharu OHZEKI a.k.a @saneyuki_s) スライド: Servo parallelism ACID2は通った Servoのレイアウトの計算 ボトムアップの場合 子供のノードは並列に計算する 全ての計算が終わった時に親に行く トップダウン もっとシンプルに親からやっていく floatの話 floatの影響を受けるものはフラグを立てる フラグが立ったものは遅延的に計算する floatの計算終了後に再度計算する = assign height 遅延的にやるのは、同計算していいのか分からないため overflow Block format c

    ブラウザエンジン先端観測会 アウトラインメモ
  • GitHub - handsontable/handsontable: JavaScript Data Grid / Data Table with a Spreadsheet Look & Feel. Works with React, Angular, and Vue. Supported by the Handsontable team ⚡

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - handsontable/handsontable: JavaScript Data Grid / Data Table with a Spreadsheet Look & Feel. Works with React, Angular, and Vue. Supported by the Handsontable team ⚡
  • ブラウザ動作の理解-リフローとリペイント及びその最適化 | ゆっくりと…

    ブラウザ動作の理解の2回目です。今回はレンダリング・ツリーの更新に絡む、リフロー (要素の大きさ、位置などの再計算) とリペイント (描画) に関する解説を、「High Performance Web Pages – 20 new best practices」 の著者 Stoyan Stefanov のブログエントリーから 「Rendering: repaint, reflow/relayout, restyle」 を翻訳してお届けします。 同記事は、前半がリフローとリペイントに関する解説と、表示レスポンスを向上させるためのスタイル変更に関する Tips、後半は dynaTrace AJAX Edition と SpeedTracer を使った IE および Chrome の描画パフォーマンスの計測の解説で構成されてる、長い記事となっています。 今回はその前半部分をご紹介します。 レンダ

    n2s
    n2s 2013/04/06
  • 十二章第一回 classList — JavaScript初級者から中級者になろう — uhyohyo.net

    十二章第一回 classListこのページの最終更新日:2017年9月20日 この章のテーマはHTML5です。HTML5は新世代のHTMLで、2010年代に入ってから普及が始まりました。この講座を最初に書いた当時はHTML5は最先端の技術でしたが、何回かの改稿を経た今(2017年9月)となってはごく当たり前の技術となっています。 この章ではHTML5に関連する内容を解説します。というのも、HTML5の策定に伴ってHTML用のDOMにも新しくて便利な仕様が加えられました。 HTML5がよく分からないという人は、昔書いたHTML5講座も合わせて読むといいでしょう。 また、この章では、HTML5とは直接の関係が無いもののHTML5の時代に出現してきたような新しいAPIについても解説していきます。 さて、今回まず紹介するのはclassListです。これは非常に便利です。名前から想像がつくかもしれま

    十二章第一回 classList — JavaScript初級者から中級者になろう — uhyohyo.net
    n2s
    n2s 2013/02/23
    class名のリスト。add, remove, contains, toggleもあり。IEは10から、他は現行ブラウザで利用可。
  • CSSセレクタの高速化の話し - Webtech Walker

    続・ハイパフォーマンスWebサイトを読んでCSSセレクタの高速化の話しが面白かった(というか全然知らなくてちょっとびびった)ので紹介します。 セレクタは右から左に解釈される これは正直知らなくて、結構衝撃でした。 #foo .bar {} これはなんとなく#fooを探して、その中の.barを探している気がしてたんですけど、実は.barを探して、その親要素に#fooがあるかを探すそうです。なので特に#fooが必要なければ .bar {} と書いたほうが高速だということ。 また、以下の様に要素名で指定すると、その要素を全て探します。 #foo a {} これは一度a要素を全て探すので、できればaにclassをふって #foo .anchor {} とするほうが高速のようです。(#fooをとるとより高速) 特にユニバーサルセレクタなどは、 #foo * {} とすると、全ての要素の親要素に対して

    CSSセレクタの高速化の話し - Webtech Walker
    n2s
    n2s 2010/08/10
    「セレクタは右から左に解釈される」マジで!?
  • (solved) Javascriptのエラー: Security error" code: "1000 | anobota

    (solved) Javascriptのエラー: Security error" code: "1000 環境は Firefox 3.0.9。 javascript で スタイルシートをいじっていると Security error" code: "1000 とか uncaught exception: Security error (NS_ERROR_DOM_SECURITY_ERR) というエラーが出る。 たとえば head 要素内で <link href="foo.css" type="text/css" rel="stylesheet"> <link href="bar.css" type="text/css" rel="stylesheet"> <style> body { color: red; } </style> と書かれている場合、 document.styleSheets

    n2s
    n2s 2010/05/30
    document.styleSheetsのうち、linkタグで読み込んだものに対してはinsertRule()が使えない模様。styleタグを作って追加すれば回避可能。うーん。 / id:entry:17457609も参照
  • 1