タグ

domに関するtk78のブックマーク (4)

  • 仮想DOMの作りかた - Qiita

    どうもこんにちは、ウマシバ(@UMASHIBA)といいます! 先日、仮想DOMを個人的に実装してみまして、その際に得た知見を記事という形で共有したいと思います。 仮想DOMを作成するという内容上とても長い記事になってしまっていました。時間がある時や何日かに分けたりして読んでくださるとうれしいです。 それでは記事文です。どうぞ、 はじめに この記事はReactVue, Angular等のモダンなフロントエンドフレームワークの基礎部分となっている仮想DOMを作ってみようという記事です。 形式は、先日私が作成した仮想DOMと同じモノを順を追って実装してみるという形でやります。 完成形はここ(https://github.com/UMASHIBA1/UMASHIBAVirtualDOM) にあります。 ※もしよければスターください。すごくよろこびます。 この記事を読むには TypeScript

    仮想DOMの作りかた - Qiita
  • DOMNodeInserted と DOMNodeRemoved に似た仕組みを IE でも使えるようにして、セレクタの実行結果をキャッシュする - latest log

    セレクタ(id, tag, class, css, xpath)の実行速度を改善するには、2つの方法があります。 ロジックを改善する キャッシュを使う 今日は2の方法について検討したことを書き残します。 心配事 キャッシュを使う上での心配事は「キャッシュが古くなったらどうするか、それをどうやって知るか?」です。 古くなったキャッシュはクリアしなければなりません。 DOM Level2 MutationEvents を使うと、ノードの挿入, 削除と、属性の更新 を取得できる DOM Level2 MutationEvents という仕様があります。これらを活用するとDOMツリーが更新されたタイミングを監視できます。 DOMNodeInserted は ノードの挿入, DOMNodeRemoved は ノードの削除, DOMAttrModified は 属性の変更に対応しています。 各ブラウザ

    DOMNodeInserted と DOMNodeRemoved に似た仕組みを IE でも使えるようにして、セレクタの実行結果をキャッシュする - latest log
  • 文書ツリーを多数回変更するときはDocument Fragmentを経由する (agenda)

    「文書ツリーを多数回変更するときは、直接行なわずにDocument Fragmentを経由してくれ」という話。 一度DOMの実装を書いてみるなり、書こうとしてみるなりすれば分かる。DOM文書ツリーの変更、特にHTML文書におけるそれがどれだけの要素に影響を与えるかが。Document Fragmentの何が良いかといえば、例えば「View」から切り離されていることが挙げられると思う。DOM実装に依存するし想像でしかないけれども、文書ツリーに直接何らかのノードを加えたり削除したりすると、表示スタイルの計算にリソースを多少なり消費するが、Document Fragment中のノード群を操作する限りスタイルは関係ない。操作が完了した後に実際の文書ツリーに一回だけ変更を加えるなら、スタイルの計算も一回ですむ。文字列連結を何度も繰り返すか、それとも文字列の配列を一回だけjoinするかの違いを連想して

  • DOM Samples /Core Node/nextSibling - [JavaScript]All About

    下記ボタンをクリックするとfirstChild(<i>test1</i>)の次のノードnextSiblingのノードネームをダイアログ表示しますが、 test1test2 nxt = fch.nextSibling //← alert( nxt.nodeName ) "> <p id="pid"><i>test1</i><b>test2</b></p> <form> <input type = "button" value = "firstChildの次のノードは?" onclick = " poj = document.getElementById('pid') fch = poj.firstChild //←<i> nxt = fch.nextSibling //←<b> alert( nxt.nodeName ) "> </form> この場合のnext

    tk78
    tk78 2008/01/04
    nextSibling
  • 1