[解決済み】パッシブイベントリスナーとは何ですか?
質問
プログレッシブWebアプリケーションのパフォーマンスを向上させるために作業しているときに、新しい機能に出会いました。
Passive Event Listeners
と、そのコンセプトを理解するのは難しいですね。
とは何ですか?
Passive Event Listeners
また、それをプロジェクトに導入する必要性は何でしょうか?
どのように解決するのですか?
<ブロッククオートパッシブイベントリスナーは新しいWeb標準であり、新しい機能です。 Chrome 51で出荷され、スクロールを大きく向上させる可能性があります。 のパフォーマンスを向上させます。 Chromeのリリースノートです。
タッチやホイールのイベントリスナーでスクロールをブロックする必要がなくなるため、開発者がより良いスクロールパフォーマンスを選択できるようになります。
問題点
最近のブラウザーはすべてスレッドスクロール機能を備えており、高価な JavaScript が実行されているときでもスクロールをスムーズに行うことができます。
touchstart
と
touchmove
ハンドラを呼び出すことで、スクロールを完全に防止することができます。
preventDefault()
を指定します。
解決策
{passive: true}
タッチまたはホイールリスナーをパッシブとしてマークすることで、開発者はハンドラーが
preventDefault
を使用してスクロールを無効化します。
This frees the browser up to respond to scrolling immediately without waiting for JavaScript, thus ensuring a reliably smooth scrolling experience for the user
.
document.addEventListener("touchstart", function(e) {
console.log(e.defaultPrevented); // will be false
e.preventDefault(); // does nothing since the listener is passive
console.log(e.defaultPrevented); // still false
}, Modernizr.passiveeventlisteners ? {passive: true} : false);
関連
-
[解決済み】Uncaught ReferenceError。Reactが定義されていない
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] Node.jsを使うタイミングをどう判断するか?
-
[解決済み] イベントバブリング、キャプチャーとは何ですか?
-
[解決済み] イベントを発生させた要素のIDを取得する
-
[解決済み】JavaScript版sleep()とは?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Heroku:ノードアプリで「このアプリにはデフォルトの言語が検出されませんでした」エラーがスローされる
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み] jQueryで、ユーザーがそのフィールドを編集している間、テキストフィールドの最初の文字を大文字にするにはどうすればよいですか?
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】ES6マップオブジェクトをソートすることは可能ですか?
-
[解決済み】Babel NodeJS ES6: SyntaxError: 予期しないトークンのエクスポート
-
[解決済み] 警告 スクロールブロックの「touchstart」イベントに非受動的なイベントリスナーを追加しました [重複] 。
-
[解決済み】イベントハンドラを「パッシブ」に設定して、ページの応答性を向上させることを検討する。