タグ

DOMに関するclavierのブックマーク (100)

  • Page Object Patternを使うな、というCypress公式記事を読んで思ったこと - Qiita

    ※この記事はただの集団 Advent Calendar 2019の11日目の記事です。 はじめに 若干過激なタイトルにしたことを最初にお詫びします。 正確には以下の記事を読んで思ったことです。 Stop using Page Objects and Start using App Actions Page Objectsを使うのはやめて、App Actionsを使おう (著者訳) 引用元はCypressの公式ブログです。 全編英語なので、「読むの面倒くさいよぅ」という方には、記事が内容理解に役立つかもしれません。 Summary 1.前提 2.Page Object Pattern推奨派の主張 3.Page Object Pattern否定派の主張 4.記事を読んで思ったこと 5.最後に 説明の都合上、まずPage Object Pattern推奨派の考え方を簡単に説明し、その後にPag

    Page Object Patternを使うな、というCypress公式記事を読んで思ったこと - Qiita
  • Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io

    Intro React や lit-html などにより、 DOM 操作の抽象化に加えて最適化が提供されることが一般的となった。 見方を変えれば、来ブラウザがやるような最適化を、ライブラリが肩代わりしていると捉えることもできる。 これは、現在の標準 API には、規模が大きく処理が複雑なアプリケーションを開発する際に、足りてないものがあると考えることが可能だ。 課題の 1 つとして「DOM 操作が同期処理である」という点に着目し、 Async DOM という文脈でいくつかの提案が行われた。 今回は、その提案の 1 つであり Chrome で実装が進んでいる Display Locking について現状を解説する。 現状の DOM 操作の課題 まず、以下のような処理を考える。 body.appendChild($div) この処理が JS の途中で出現すれば、その瞬間 Window にある

    Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
  • 自作フレームワークをつくって学ぶ 仮想DOM実践入門

    昨今の代表的なJavaScriptフレームワーク(ReactVue.jsなど)には「仮想DOM(Virtual DOM)」という概念が採用されているので、フロントエンド界隈の人は一度は耳にしたことがあるだろう。ただ、仮想DOMについて学ぼうと検索してもヒットするのは「フレームワークの使い方」ばかり。踏み込んでいても概念の説明どまりで、仮想DOMがどのように実装されているか解説した記事はすくない。 ということで、当記事では理解を深めるために仮想DOMを使ったフレームワークを自作し、仮想DOMに入門する! そして、ReactVue.jsを単なるブラックボックスのフレームワークではなく、中身を理解して使えるようになることを、当記事の目標とする。 フレームワークが完成すると以下のようなWebアプリケーションがつくれるようになる。 TOC 記事が長くなりそうなのでも目次 そもそもDOMとは? D

    自作フレームワークをつくって学ぶ 仮想DOM実践入門
  • RUMとA/Bテストを使ったパフォーマンスのモニタリング — HACK The Nikkei

    ブラウザのパフォーマンス指標 Web アプリケーションにおける表示速度がサービスの品質・ビジネスに与える影響は大きい。サイトの遅さはブログサービスではユーザの離脱、広告売上の低下、EC サイトではコンバージョン率の低下などに影響を与えるといった点が知られ、Google は 2018 年 7 月からモバイル検索においてもサイトの表示速度を検索インデックスのシグナルとして加味する旨を公開している。 サイトパフォーマンスの改善は CDN やキャッシュサーバなどを用いたサーバサイドでの改善はもちろんだが、フロントエンドのレンダリングやユーザインタラクションの応答速度などの指標も重要である。また、これらは通信環境にも大きく影響する。ここでは主にクライアントサイドのパフォーマンス指標のモニタリングについて取り上げたい。 ブラウザの画面表示までの流れは以下のとおりである。 Time To First B

    RUMとA/Bテストを使ったパフォーマンスのモニタリング — HACK The Nikkei
  • 第6回 DOM-based XSS その1:JavaScriptセキュリティの基礎知識|gihyo.jp … 技術評論社

    JavaScriptによるブラウザ上での処理量およびコード量の増加に伴い、JavaScript上のバグが原因で発生する脆弱性も増加しています。そのような脆弱性の最も代表的なものが、DOM-based XSSです。今回から数回に分けて、DOM-based XSSについて説明していきます。 DOM-based XSSとは 連載第2回で説明したような一般的な反射型および蓄積型のXSSのほとんどは、Webアプリケーションがサーバ上でHTMLを生成する際に、攻撃者が指定した文字列のエスケープが漏れていることが原因で発生します。一方、DOM-based XSSは、サーバ上でのHTMLの生成時には問題はなく、ブラウザ上で動作するJavaScript上のコードに問題があるために発生します。 たとえば、以下のようなJavaScriptコードがあったとします。 // bad code div = docum

    第6回 DOM-based XSS その1:JavaScriptセキュリティの基礎知識|gihyo.jp … 技術評論社
  • Shadow DOM v1でHTMLの内容と構造を分離する

    近年ではウェブに対する要求が肥大化しており、それに対応してHTMLも複雑化してきています。しかし、もともとHTMLはウェブアプリを記述するための言語ではありません。大規模なウェブアプリを作成するとなると、様々な点で不都合が出てきてしまいます。特に、まとまった部品をコンポーネント化して扱う機能に欠けていました。このことが私たちを悩ませ、今まで多くの苦労を引き起こしていました。 でも、もう悩まなくてもよくなるかもしれません。HTMLをコンポーネント化する規格が生まれました。それがWeb Componentsです。 Web ComponentsとShadow DOM Web Componentsは次の4つの部分からなる規格です。 Templates Shadow DOM Custom Elements HTML Imports 今回は、このうちのShadow DOMに焦点を当てていきたいと思いま

    Shadow DOM v1でHTMLの内容と構造を分離する
  • Observableってなんなんね? - パステル色な日々

    ついにRCのリリースも間近となったAngular2ですが、私はこの間のハンズオン以来全然触れてません。 少しづつ触っていきたいものですが、ここ最近の勉強会の経験からAngular2を学ぶならWebの最新技術を学ぶことが大切なのだとわかったので、まずは、Observableを調べてみようと思います。 学習教材を探す Observableについて学ぶぞ!と意気込んでみたもののどうやって学べばいいのでしょう。 どこかにObservableの正体について書かれた資料はないでしょうか。 github.com ここにObservableがリストアップされています。 TC39、ECMAScriptを策定してる組織です。ECMAScriptはJavaScriptの仕様だと前に教えてもらったことがあります。 どういう人達なのか 何が目的なのか そのために何をしているのか 思うことはいろいろありますが、とりあ

    Observableってなんなんね? - パステル色な日々
  • jQueryは必要ない(You Don't Need jQuery)

    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

    jQueryは必要ない(You Don't Need jQuery)
  • You Don't Need jQuery - Qiita

    注意とお願い この記事の内容はもはや古いです。ここに書いている方法では動かないものをいくつか見つけました。参考にする際は動作をよく確認してから使ってください。 ひとつお願いがあります。「あれ、動かないぞ」というコードを見つけたら是非コメントか編集リクエストで教えてください。解決方法までなくても結構です。「これはもう動かないよ」という印をつけたいのです。 この記事はYou Don't Need jQueryの日語訳と同じ内容です。 先日ひょんなことからYou Don't Need jQueryの日語訳をさせていただきました。著者のCam Songさんからも快諾をいただけたので1、Qiitaでも公開させていただきます。 なお、家の英語の説明は継続的にメンテされているので、この記事の情報は古くなっている可能性があります。 追記 この記事は当初は「もうjQueryは必要ない」というタイトルで

    You Don't Need jQuery - Qiita
  • フロントエンドで知っておきたい要素指定の考え方 - pixiv inside [archive]

    みなさんはじめまして、ピクシブのフロントエンドエンジニア id:koharusugiura です。 JavaScript を用いた開発を行う際に jQuery や Reactvue.js といったライブラリーを使う方は多いでしょう。これらのライブラリーは共通して DOM を扱うライブラリーとなります。 DOM についての説明は長くなるのでここでは省きますが、簡単に説明すると HTML や XML の構造を表現するための仕様です。DOM は JavaScript のためだけにある仕様ではなく、 JavaPython など、多くの言語に対応する仕様です。 前述した各ライブラリーは多くのウェブブラウザー間の差異を吸収してくれるため、非常に便利なものです。しかし、その機能の豊富さからライブラリー自体のサイズは大きく、ウェブブラウザーで読み込むファイルの数や合計の容量が増えてしまいます。状況

    フロントエンドで知っておきたい要素指定の考え方 - pixiv inside [archive]
  • Reflowを制するものはDOMを制す - Qiita

    すごい記事が1日目2日目で来ている中で恐縮ではありますが、フロントエンドJavaScriptでパフォーマンス点から気にしたほうがいい部分について書いてみることにします。 DOM律速になるケースもある よく「JavaScriptが遅い」ということも多いのですが、具体的にはどのあたりが遅くなってくるのでしょうか. 純粋にJavaScriptのスクリプト処理が遅い…最近はブラウザ自体も高速化しては来ましたが、それを追いかけるようにJavaScriptの巨大化も進んでいます。ただし、純粋にプログラム言語的な処理なら、Web Workerに振ることで並列化が可能です。 Ajaxや画像読み込みなどの通信が遅い…サーバ側で高速化する手もありますが、状況によってはJavaScriptで先読みを始めておいて、体感時間を短くすることも可能かもしれません。 DOM操作・表示が遅い…これについて今回考えてみます。

    Reflowを制するものはDOMを制す - Qiita
  • JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ

    2015年にもなるのにJavaScriptでのDOM操作のパフォーマンスについて書く。ウェブページにインタラクションを持たせたい時に、JavaScriptでDOM操作を行うことがよくある。このDOM操作のパフォーマンスについて、よく聞く意見を大別すると次の2つがある。 JavaScriptによるDOM操作は重たい レンダリングが重いだけで、DOM操作そのものはそれほど重たくない JavaScriptでオブジェクトのプロパティを操作したりする単体の処理は通常1ミリ秒もかからないが、DOM操作をするとレンダリングが完了するまでに数十ミリ秒程度かかったりする場合がある。1番目のDOM操作が重たいと言っている人は経験則的にそう言っていることが多い。 レンダリングの仕組みを知っている人は2番目の意見を言うが、重箱の隅をつつくような話をするとこれも必ずしも正しいわけではない。DOM操作するコードによっ

    clavier
    clavier 2015/10/15
    JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ
  • Incremental DOM ざっと見たやつ。追記: 初期バージョンのコードなので最新では異なる場合があります。

    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

    Incremental DOM ざっと見たやつ。追記: 初期バージョンのコードなので最新では異なる場合があります。
  • jQueryでappend関数を使ってDOM要素をネストさせたいとき - knt45の日記

    2013-01-30 jQueryでappend関数を使ってDOM要素をネストさせたいとき jQuery 以下の書き方だと、 $('<div>').append('<ul>').append('<li>') こうなってしまうので、 <div> <ul></ul> <li></li> <div> こう書くのが正しい。 $('<div>').append($('<ul>').append('<li>')) 以下のように欲しい形になる。 <div> <ul> <li></li> </ul> <div> knt45 2013-01-30 09:59 jQueryでappend関数を使ってDOM要素をネストさせたいとき Tweet Share on Tumblr 広告を非表示にする コメントを書く « jQueryで連続したDOM要素のいずれかをクリ… Rubyのディレクトリ・ファイル操作周りの…

    jQueryでappend関数を使ってDOM要素をネストさせたいとき - knt45の日記
    clavier
    clavier 2015/05/11
    jQueryでappend関数を使ってDOM要素をネストさせたいとき - knt45の日記
  • Vue.js が辛くなってきた | status code 51

    Vue.js が辛くなってきた。 ひとまず現状の辛さをダンプ 今日チームで改めて話し合って辛さがハッキリしてきたので、それをつらつらと書いてく。 (今のチームは僕を含めて Rails プログラマが多くて、フロントエンドを専門にやってる人はいない。) グローバル変数大量問題(もしくはイベント地獄問題) たくさんの状態(変数)が必要 && 複数 DOM にまたがるレンダリングがしたい。 今は、左ペインで選択して右ペインに出す、みたいな事をしている。 左ペインはタブで様々な種類の項目を選べて、選択したものを右側でリスト化して表示している。 これをやろうとするにあたって、方向性が2つあると思っていて 左ペインと右ペインでコンポーネントを分けて、親玉 ViewModel に変更を通知して親玉がレンダリング制御する -> イベント地獄 左ペインと右ペインの上位の親玉 ViewModel をつくって全て

  • 関数型UIプログラミング - 標高+1m

    Pasta(deprecated)とかkakahiakaとかcastorocaudaっていうのを2012年くらいからぽつぽつ作ってて、その時に考えていたこと。多分Fluxも同じことを考えてて思いついたんだと思ってる。あと継続ベースのWAF( Seasideとかkahuaとか )とも通じる部分がある。*1 狭義の関数型プログラミングには値と関数しかない*2ので状態が持てない。つまり入力から一意に出力が決まるプログラムしか書けない。つまりアプリケーション自体が一つの関数である必要が有る。 こういうアプリケーションの典型例としては、対話式でない単純なシェルスクリプトがある。完全にステートレスな(裏にDBがあったりしない)Webサーバの各エンドポイントとかも当てはまる。 $ echo hello hello このパラダイムで対話的UI(例えばWebフロントエンド)を作るには、シェルの役割を果たすフ

    関数型UIプログラミング - 標高+1m
  • JavaScript で DOM 要素の絶対座標を取得する方法 - tmlife

    備忘録. スペニット的に使ってもらえれば幸いです. DOM 要素の絶値座標を取得する element.scrollTop とかだと親からの相対値になっちゃいます. getBoundingClientRect() を使えば絶対座標を取得できます. window.onload = function() { var element = document.getElementById('hoge'); // hoge というIDがついたやつを取得する var rect = element.getBoundingClientRect(); console.log(rect.left); // x座標(絶対座標) console.log(rect.top); // y座標(絶対座標) console.log(rect.width); // 幅 console.log(rect.height);

    clavier
    clavier 2015/01/23
    JavaScript で DOM 要素の絶対座標を取得する方法 - tmlife
  • [JS] 慣性を使ったコンテンツ - Qiita

    iOSやAndroidなどのスマホの画面は基的に慣性が効くようになっています。 (スワイプして指を離すとすべるように画面が移動するアレ) そのため、逆に慣性をオフにした場合にとても違和感があり、また慣性の効き方がおかしいとクオリティがとても下がったように感じます。 Webサイトでiframeを使ったりしていると慣性が効かない部分がたまにあることに気づく人もいるでしょう。 また、スマホゲームなどではUI部分は独自実装(やUnityなどのフレームワークが準備してくれたUI)されているものが多く、OSの動きと比べると違和感を覚えることも少なくありません。 過去に、iOSのスクロールを真似たカスタムスクロールのビューを作ってみたことがありますが、やはり違和感を消すことはできませんでした。 普段ユーザーが当たり前に使う部分だけに、慣性を活かしたコンテンツを作りたいものです。 と、前置きが長くなりま

    [JS] 慣性を使ったコンテンツ - Qiita
  • SCRIPTY #02 に行った - Qiita

    SCRIPTY#2 〜フロントエンド紳士・淑女のための勉強会〜 http://scripty.connpass.com/event/10345/ セッション JSコードの品質 - platoの紹介 by @mwakkiy JavaScriptでトゥイーンアニメーション入門 by @wemra Flux + React.js入門 by @pirosikick Dockerを使ったWordPressテーマ開発、Selenium Serverについて by @moongift Meteorフレームワークについて @rukiadia ライブコーディングのすゝめ by @shamabe 僕は遅刻して「JSコードの品質 - platoの紹介」はちょっとしか聞けなかった。 個人的に面白かったものをいくつか紹介します。 わかってない所とか多々ありそうなので、間違っているところは遠慮なくPicaxe投げても

    SCRIPTY #02 に行った - Qiita
  • 脱PolymerなWeb Componentsデザパタ - ジンジャー研究室

    はじめに 今朝話題になっていたWeb Componentsの基的な使い方・まとめ に触発されてみる。 すごい…!私にはこんな緻密な資料は書けないorz だけど何か書きたい。書くぞ。 そろそろWeb Componentsしたい Web開発に革命をもたらすと噂のWeb Componentsだが、そろそろプロダクションへの導入を検討したい。 2014年12月現在、Chrome 36+で全機能が使えるので、デモ画面や開発(テスト)ツールでは既にPolyfillなしで色々出来る。積極的に遊んでみたい。 とはいえ、現状と言えばWeb Componentsに関する情報は紹介記事がほとんどで、あまりプラクティカルな領域に踏み込めていない感がある。まあそんなものは実際に使い始めればわんさか出るので、別にその時になってからでも良いのだが、せっかくなので戦略の一つや二つ練っておきたい。 もうひとつ、Googl

    脱PolymerなWeb Componentsデザパタ - ジンジャー研究室
    clavier
    clavier 2014/12/15