タグ

DOMに関するynsynsのブックマーク (12)

  • DOM操作の主流になるか!? セレクタAPIを使いこなそう

    連載目次 従来、JavaScriptでは、以下のようなメソッドを利用して、操作対象の要素を特定していた。 getElementByIdメソッド:IDの値をキーにノードを取得する。 getElementsByTagNameメソッド:要素名をキーにノードを取得する。 getElementsByClassNameメソッド:class属性の値をキーにノードを取得する。 しかし、この方法で複雑な構造のHTML文書から要素を取り出す場合、コードが複雑になりやすいという課題もあった。例えば、以下は従来のgetElementXxxxxメソッドを利用した要素の取得例だ。 上記のJavaScriptコードでは、奇数番目の要素を特定するために全てのインデックス番号をif文で判定させている。ほかにも属性値やclass属性によって要素を絞り込むならば、同じような判定式を書いた経験が読者諸氏にもあるだろう。「もっと簡

    DOM操作の主流になるか!? セレクタAPIを使いこなそう
    ynsyns
    ynsyns 2011/10/13
  • DOM オブジェクトとメモリリーク: Days on the Moon

    IE でのメモリリーク ちょこちょこと紹介されているので知っている人も多いと思うが、IE には DOM ノードに絡んだメモリリークの問題がある。これに関しては Microsoft 自身の記事である「Understanding and Solving Internet Explorer Leak Patterns」に詳しいが、簡単にいえば DOM ノードオブジェクトに関する循環参照を作ると、IE を終了させるまでそのオブジェクトが解放されないというものだ。記事によればメモリリークには以下のようなパターンがあるという。 1. 単純な循環参照 ある DOM ノードオブジェクトのプロパティをたどっていくと自分自身に行き着く場合。以下のようなパターンが考えられる。 element.property == element element1.property1 == element2, element2

  • addEventListener()の第3引数の意味とかをちゃんと理解する為のメモ - 今日もスミマセン。

    Web上でUIをマジメに作ろうとするとイベントの仕組みをちゃんと理解しておく必要がある。 jQueryとか便利なライブラリつかえばある程度簡単にできるんだろうけど、いろいろ制約あってそれらのライブラリが使えない場合もあるので、ちゃんと理解するためにメモしておく。 イベント伝播の順番 W3Cのドキュメントに分かりやすい図があったので引用する。 The capture phase: the event is dispatched to the target's ancestors from the root of the tree to the direct parent of the target node. The target phase: the event is dispatched to the target node. The bubbling phase: the event

    addEventListener()の第3引数の意味とかをちゃんと理解する為のメモ - 今日もスミマセン。
  • 【レポート】IE9、ほかのブラウザと同じJavaScriptコード動作へ | エンタープライズ | マイコミジャーナル

    Windows Internet Explorer 9 JavaScriptプログラミングでフラストレーションが溜まるポイントのひとつに、IEとそれ以外のブラウザで記述方法が異なることを挙げることができる。特にDOM周りのコーディングはIEだけ別の記述をしなければならない。しかし、これもIE8までの話ということになりそうだ。現在開発が進められているIE9ではこうした問題が解決している。どういった変更を実施したかがIEBlogのExploring IE9's Enhanced DOM Capabilitiesに詳しく説明されている。 これまでIEだけはDOM周りの実装がほかのブラウザと違っていた。これはDOMへのアクセスにCOMを使っていたことに原因がある。結果として、プログラマがすべてのブジェクトに期待する機能がIEの提供するDOMオブジェクトにだけは存在せず、別の方法を使って実現する必要

  • JavaScriptのDOM Core基礎 - 三等兵

    Coreの簡易リファレンス。Coreは要素を参照したり、相対位置から周りのノードを参照したり、要素を生成するといった部分。主に利用するであろうプロパティやメソッドはカバーしているつもりですけど、これも入れとけってのあったら教えてください。 このあたりは地味で使いづらくその上理解しにくいという残念な部分。ふと忘れたときに使う個人的なものですが、慢性jQuery拒絶症候群な人よかったらどうぞ。それにしても暑い。ガリガリ君おいしいね。 DOMとは。 Document Object Model (DOM) は、HTML および XML ドキュメントのための API です。これはドキュメントの構造的な表現を提供し、内容や表示形態の変更を可能にします。端的に言えば、Web ページをスクリプトやプログラミング言語とつなぐような機構です。 https://developer.mozilla.org/ja/

    JavaScriptのDOM Core基礎 - 三等兵
  • 第10回 JavaScriptとCSS | gihyo.jp

    こんにちは、太田です。前々回と前回はHTMLの操作について解説しました。今回は、CSSの操作を中心に解説していきます。 CSSJavaScript JavaScriptからCSSを扱うとは、JavaScriptから要素に適用されているスタイルを変更して見た目を変化させる、ということを意味します。その具体的な方法にはいくつかの種類があります。 styleプロパティの操作 class名の操作 CSS自体の操作 では、styleプロパティの操作から順番に見ていきます。 styleプロパティの操作 要素のstyleプロパティを直接操作する方法は、その要素だけに影響するので1回あたりの処理コストは低く済むというメリットはあります。しかし、複数のプロパティの操作に加え、多くの要素のスタイルを変更する場合には、スタイルを変更するたびに描画への影響の計算が行われる(この計算をreflowと呼びます)ので

    第10回 JavaScriptとCSS | gihyo.jp
  • 第7回 JavaScriptとHTMLとDOMの基本#2 イベント編 | gihyo.jp

    こんにちは、太田です。前回はJavaScriptからみたHTMLの基を中心に解説しました。今回はまず、イベントについて解説します。JavaScript、DOMにおいてイベントは極めて重要です。ブラウザ上のJavaScriptでは必ずといってよいほどイベントが絡んでいますし、ウェブアプリケーションをコントロールする根幹的な技術と言えるほどです。 JavaScriptとイベント ブラウザはscriptタグで指定されたJavaScriptを解釈して実行します。その時、関数などを定義するだけにして、実際にその処理が行われるのはユーザーがボタンをクリックした時や、何かを入力した時など、ユーザーの何らかのアクションに関連付けてJavaScriptを実行させることができます。さらには、ユーザーのアクションだけでなく、ページの読み込みや通信処理の完了後など、ブラウザ上で起こるあらゆるイベントについて処理

    第7回 JavaScriptとHTMLとDOMの基本#2 イベント編 | gihyo.jp
  • IE9、attachEvent不要 | エンタープライズ | マイコミジャーナル

    Windows Internet Explorer 9 JavaScriptベースのWebアプリケーションやWebページを開発する場合にこれまで頭痛の種になっていたもののひとつに、ブラウザごとにイベント処理の記述方法が違うというものがあった。特にこれはIEとそれ以外の主要ブラウザという違いにわかれており、あるイベント処理を記述するのにIE用の記述とそれ以外のブラウザ向けの記述用といったように開発する必要があり、ソースコードを煩雑化させる原因のひとつになっていた。 しかし、IE9からは状況が好転するという。IEBlog : DOM Level 3 Events support in IE9において、IE9からはDocument Object Model (DOM) Level 3 Events Specificationをサポートすると説明されている。IE9からはattachEventの処理

    ynsyns
    ynsyns 2010/04/01
    もし6,7,8,9が同時に存在する時期があれば、悪夢だ
  • Web標準とその周辺技術の学び方:第5回 DOMとJavaScriptと互換性|gihyo.jp … 技術評論社

    今回は、動的なWebサイトやWebアプリケーションに欠かせない「DOM」と「JavaScript」という二つの技術を、関連する仕様とともに紹介したいと思います。 さまざまなものをオブジェクトで表現するDOM DOM (Document Object Model) とは、HTML文書にアプリケーションからアクセスするためのAPIです。オブジェクトモデルという名前のとおり、DOMではさまざまなものが「オブジェクト」として表されます。たとえばHTML文書は「要素」「⁠属性」「⁠テキスト」などのオブジェクトから成る集合として表されます。 オブジェクトで扱われるのは、文書内部のオブジェクトだけではありません。ウインドウや要素の座標、イベント、ブラウザーやユーザーインターフェースに関連するオブジェクトなどもあります。Webアプリケーションでは、これらのAPIを利用し複雑な処理を実現しています。 DOM

    Web標準とその周辺技術の学び方:第5回 DOMとJavaScriptと互換性|gihyo.jp … 技術評論社
  • DOM functions v.s. innerHTML v.s. cloneNode - なんとなく日記

    JavascriptでDOM要素を生成するにはいろいろなやり方があるけど,どれが一番速いのか気になっていた。漠然と,cloneNode速そうだなーと思ってそれを使っていた。 思い込みで速度を語るのはよくない!と思ったので,Firefox3 RC1 + Firebug 1.2.0b1 で軽くベンチマークを取ってみた。 ベンチマークに利用したソースと,結果を貼り付けてみる。 シンプルなHTMLを生成した場合 <div><a href="http://example.com">Example</a></div> こんなHTMLを, document.createElement, document.createTextNode, elem.appendChild を使って生成した場合 div を生成して innerHTML に内容を代入する場合 あらかじめ生成してある要素を cloneNode(t

    DOM functions v.s. innerHTML v.s. cloneNode - なんとなく日記
  • Speed up your JavaScriptシリーズ全4回、ブラウザには止めさせない | エンタープライズ | マイコミジャーナル

    NCZOnline NCZOnlineにおいてNicholas C. Zakas氏が興味深い記事を掲載している。全4回に渡ってJavaScriptコードを高速化するためのテクニックを説明するというものだ。JavaScriptデベロッパは記事を一度チェックしておきたい。公開されている記事は次の通り。 Speed up your JavaScript, Part 1 Speed up your JavaScript, Part 2 Speed up your JavaScript, Part 3 Speed up your JavaScript, Part 4 Part 1では多くの処理を実施しているループに関するテクニックについて、Part 2では多くの処理を実施している関数に関するテクニックが、Part 3では深く実行される再帰処理に関するテクニックが、Part 4では頻繁に行われるDOM

  • IE8 の DOM のプロトタイプと Getter/Setter API はどうなるか - IT戦記

    ちょっと前に Microsoft 公式に以下のような発表がありました。 Responding to Change: Updated Getter/Setter Syntax in IE8 RC 1 – IEBlog また、以下のようなドキュメントも公開されています。 Internet Explorer for Developers | Microsoft Docs Internet Explorer for Developers | Microsoft Docs これらの内容での概要を自分なりにまとめてみます。 概略 要点は DOM オブジェクトのプロトタイプが使えるようになる DOM オブジェクトに既存の Getter/Setter API が使えるようになる DOM オブジェクトに ECMAScript 3.1 の Getter/Setter API(PropertyDescripto

    IE8 の DOM のプロトタイプと Getter/Setter API はどうなるか - IT戦記
  • 1