はしがき
最適化! さらなる最適化!
カットダイアグラムは、Web アプリケーション全体の間のリンクとして機能し、ユーザーの行動とマシンのパフォーマンスを結び付けます。 最適化の究極の意味は、この 2 つの間の最適なバランスを達成することです。
これは特に画像リソースの読み込みに当てはまります。 今日は、プロジェクト開発における一般的な画像読み込みの最適化方法について簡単に説明します。
プリロード済み
1.マスキング方法
window.onload は実際には DOMContentLoaded イベントによって完了するコールバックであり、DOM ツリーの構築のみを完了することは誰もが知っています。 CSS レンダリングやページ内画像などのリソースのダウンロードは、必ずしも完了するとは限りません。したがって、この時点でページをレンダリングすると、ページは非常に見苦しくなります。
この問題を解決し、デザインと動作の観点からユーザーエクスペリエンスを向上させるために、画像などの重要なリソースが完全にダウンロードされる前に、より美しいマスクをページに追加することができ、読み込みプロンプトがポップアップして通知されます。画像が完全にロードされたら、マスクを削除してアニメーションをロードするまで待ちます。
具体的な実装アイデアは次のとおりです:
window.onload が呼び出された後、最初にマスクがポップアップし、読み込み中であることをユーザーに知らせるために読み込みアニメーションが使用されます
ページにプリロードする必要がある IMG 要素をダウンロードします var img = new Image();
画像がダウンロードされると、onload コールバックが存在します img.onload = function () {…}
このコールバックの読み込みアニメーションとマスクを削除します
これにより、ユーザーはスムーズでシルキーな操作体験を提供できるようになり、完全に表示されていない、ダウンロード中の見苦しい画像がユーザーに表示されることを心配する必要がなくなります。
私たちのスローガンは次のとおりです: 見せません。または、最適なアプリケーション シナリオを示します。「最初の画面に画像のアニメーションがある場合、または接続している UI デザイナーがいる場合に使用してください」非常に強力です」
2. 暗号化された大法
コーディング方法とマスキング方法には若干の違いがあります。具体的な実装アイデアは次のとおりです。
まず、プリロードする必要がある 2 つの写真を準備します。1 つは高解像度、もう 1 つは低解像度です。 たとえば、girl_hd のサイズは 60kb で、もう 1 つの写真は girl で、サイズは 6kb です。 HTMLページにプリロードする必要がある画像タグのsrcアドレスは、低解像度アドレスです
低解像度の画像は非常に小さいため、すぐに読み込むことができます。
window.onloadを呼び出した後、ページ上の高解像度置換が必要なimgのsrc(girl.jpg)を取得し、そのsrcをベースに文字列(+'_hd.jpg')をつなぎ合わせて取得します。高解像度画像 (girl_hd.jpg) のアドレスを指定し、var img = new Image(); を使用してこの高解像度画像をダウンロードします
画像がダウンロードされると、onload コールバックが存在します img.onload = function () {…}
コールバックでページ内の img の src を置き換えるので、ページ上の画像タグは になります
私たちのスローガンは次のとおりです: 無修正の高画質を見たい場合は、まずコード化された低解像度アプリケーション シナリオをご覧ください: 「最初の画面に大量の画像が表示され、サイズが小さくない」場合に使用してください。
遅延読み込み
上記のプリロードのアイデアを注意深く読んだ場合は、私の頭をたたいてください。マスキング方法やコーディング方法に関係なく、これではプロジェクトの読み込み速度は結局のところ向上しません。ダウンロードは必要ありません。 はい、遅延読み込みはユーザーの操作エクスペリエンスを変えるだけで、実際にはプロジェクトの読み込み速度は向上しません。 ただし、ここで説明しているのは遅延読み込みであり、実際にプロジェクトの読み込み速度が向上します。
遅延読み込みとは一言で説明すると、オンデマンドで画像を読み込むことです
Weibo のフォト ウォールは遅延読み込みの最良の例です。最初はあまり写真が表示されていませんが、ユーザーが一番下の位置までプルダウンすると、写真の壁が引き伸ばされて新しい写真が読み込まれます。
運用アイデア:
スクロールバーのスクロールイベントを聞く(もちろんtouchmoveイベントも使えます)
イベントがトリガーされるたびに、現在のフォトウォールの位置を決定します
写真の壁が下部の重要な点までブラシをかけられている場合
Js は新しい画像をダウンロードします、var img = new Image();
ダウンロードが完了すると、onload コールバックが存在します img.onload = function () {…}ダウンロードが完了したら、ダウンロードした画像をコールバックのページに挿入します
もちろん、プロジェクトに応じてさまざまな遅延読み込み方法があります。ただし、コアは変わりません。つまり、ページが最初に読み込まれるとき、ユーザーのニーズを満たす最小限のリソースのみが読み込まれます。例として、ユーザーの Weibo には 500 枚の写真があるとします。ページの読み込み時にそれらを読み込むと、500 枚の写真があれば、爆発するまでユーザーは動けなくなります (背景は常に写真のダウンロード状態にあるため)。 ページをロードするときに最初に 20 枚の画像だけをロードし、他の画像はユーザー自身の操作 (下にスクロール) を通じてオンデマンドでロードすると、プロジェクトのスムーズさが大幅に向上します。
結論
プリロードと遅延ロードの実装原則は非常にシンプルですが、私に与えられたインスピレーションは実に大きいです:
ユーザーの操作エクスペリエンスを向上させることに加えて、プリロードの根深い核心は実際には次のとおりです。リソースの断片的なロード、つまり、ユーザーのマウスが長期間動かなかった場合、いつでもプリロードが発生する可能性があります。こっそり2枚の写真をダウンロードできますか?ユーザーが多くの計算を行っていないときに、こっそり 2 枚の写真をダウンロードすることはできますか?ユーザーが現在非常に合理化されたログイン インターフェイスを使用している場合、ログインに成功したページの写真をこっそりダウンロードすることはできますか?待って待って
遅延読み込みの根深い核心は:オンデマンド オンデマンドという言葉は私の心に深く刻み込まれています。 今振り返ると、非常に多くの最適化手法がオンデマンドを中心に展開されています。 オンデマンドで Js をロードし、オンデマンドで画像をロードするなど
まず、ユーザーが最短時間でページとコンテンツを閲覧できるように、プロジェクトの初回読み込み速度を確保する必要があります。
次に、現在のページを可能な限り合理化し、無意味な読み込みを避けるようにしてください。 本当に必要な場合にのみユーザーに表示します。
それぞれの長所と短所は次のとおりです:
プリロード:
利点: 事前に写真をダウンロードしておくと、写真が必要になったときにすぐに開くことができます。
欠点: 画像をダウンロードすると、プロジェクトの読み込み完了時間とプロジェクトの操作のスムーズさに影響します
遅延読み込みの原因:
利点: ユーザーがロードするプロジェクトが最も効率的かつ高速であり、ダウンロードされるリソースが最小限であることを保証します
デメリット: ユーザーの操作によって遅延読み込みが引き起こされると、リソースのダウンロードが完了するまでに時間がかかり、同時にリソースのダウンロード期間中は操作の流暢性が低下します。
結局のところ、プロジェクトの最適化に特効薬はありません。ある部分の効率が別の部分の非効率につながる可能性があります。最適化メソッドをプロジェクト A からプロジェクト B にコピーすることは無意味である可能性があります。したがって、私たちにできることは、これらの技術の原理を深く理解し、プロジェクトで経験を積むことであり、それぞれの技術の長所と短所を深く理解し、ユーザーのニーズと行動習慣を深く理解することによってのみ、Carry を実現することができます。特定のプロジェクトや特定のシナリオに最適な処理を導き出します。
HTML、CSS、およびJavaScriptは、最新のWebページを構築するためのコアテクノロジーです。1。HTMLはWebページ構造を定義します。2。CSSはWebページの外観に責任があります。

HTMLの機能は、Webページの構造とコンテンツを定義することであり、その目的は、情報を表示するための標準化された方法を提供することです。 1)HTMLは、タイトルやパラグラフなどのタグや属性を使用して、Webページのさまざまな部分を整理しています。 2)コンテンツとパフォーマンスの分離をサポートし、メンテナンス効率を向上させます。 3)HTMLは拡張可能であり、カスタムタグがSEOを強化できるようにします。

HTMLの将来の傾向はセマンティクスとWebコンポーネントであり、CSSの将来の傾向はCSS-in-JSとCSShoudiniであり、JavaScriptの将来の傾向はWebAssemblyとServerLessです。 1。HTMLセマンティクスはアクセシビリティとSEO効果を改善し、Webコンポーネントは開発効率を向上させますが、ブラウザの互換性に注意を払う必要があります。 2。CSS-in-JSは、スタイル管理の柔軟性を高めますが、ファイルサイズを増やす可能性があります。 CSShoudiniは、CSSレンダリングの直接操作を可能にします。 3. Webassemblyブラウザーアプリケーションのパフォーマンスを最適化しますが、急な学習曲線があり、サーバーレスは開発を簡素化しますが、コールドスタートの問題の最適化が必要です。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。1。HTMLは、Webページ構造を定義し、2。CSSはWebページスタイルを制御し、3。JavaScriptは動的な動作を追加します。一緒に、彼らは最新のウェブサイトのフレームワーク、美学、および相互作用を構築します。

HTMLの将来は、無限の可能性に満ちています。 1)新機能と標準には、より多くのセマンティックタグとWebComponentsの人気が含まれます。 2)Webデザインのトレンドは、レスポンシブでアクセス可能なデザインに向けて発展し続けます。 3)パフォーマンスの最適化により、応答性の高い画像読み込みと怠zyなロードテクノロジーを通じてユーザーエクスペリエンスが向上します。

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
