国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ ウェブフロントエンド htmlチュートリアル 【フロントエンドの話】フロントエンド最適化の詳細を解説する_html/css_WEB-ITnose

【フロントエンドの話】フロントエンド最適化の詳細を解説する_html/css_WEB-ITnose

Jun 24, 2016 pm 12:03 PM
最適化 フロントエンド

フロントエンド開発が Web サイト開発者の補助的なスキルではなくなり、ますます多くの企業(yè)が注目していることを嬉しく思います。私がこの業(yè)界に入り始めた頃を思い出してみると、當時は ASP Web サイト (非 ASP.NET) が普及しており、Web サイトの 80% は ASP で作成されていました。Web ページは、フロントエンドを備えた ASP ファイルである可能性があります。コードとバックエンドコードが混在しています?,F(xiàn)在はフロントエンドとバックエンドが分離されており、フロントエンドはバックエンドの実裝にあまり注意を払わずに表示に集中できます。ただし、フロントエンドの開発は非常に速く、表示環(huán)境は複雑で変化しやすいため、フロントエンド開発者はより幅広い知識を習得する必要があります。

このチャットでは、全體を切り口として、比較的広い視點(JS、CSS、ネットワーク送信、HTML5などを含む)からいくつかのフロントエンド最適化手法を紹介する予定です。 (個人的な知識と経験が限られているため、記事で述べた點に加えて、ゼロを整數(shù)に変える特性を持つ他の最適化手法があるはずです。皆さんもぜひ追加してください。この記事は更新されます。時々)

ゼロから全體への変換とは何ですか?平たく言えば、壊れたものを一つの全體として統(tǒng)合するということですが、その全體を操作することで、一つ一つ壊れたものを操作する効果も得られるのです。たとえば、リンゴを 4 個くれたら、両手に持って歩き回ることができますが、リンゴを 10 個くれて、それをすべて手に持ったら、リンゴの世話をしなければならないので、歩くのが遅くなるかもしれません。落ちるのが怖いけど、もう一つ袋をくれて、その中にリンゴを10個入れたら、全部丸くなって、どこにでも持ち運べるよ。

OK、ここまでは言っておきましたが、フロントエンドで切り上げる必要がある箇所を數(shù)え始めましょう。

1.atlas/sprite Strategies/elf Map/Sprite Map

これらは、畫像リソースを作成する際に、いくつかの小さな畫像要素を 1 つの畫像に集める畫像コレクションの名前です。使用される場合、いくつかのパラメーターは、大規(guī)模な畫像コレクション內の必要な畫像要素を表示するために使用されます。たとえば、この大きな畫像のアイコンが DIV の背景として必要な場合、大きな畫像を DIV の背景として設定するだけでなく、特定の小さな畫像を表示するには背景畫像の位置を変更する必要もあります。 。

例: Web サイトのスプライト アセットは次のとおりです:

2. イベントの委任

インタビュー中によく質問されるのは、ページ構造が BODY であるということです。外側に 1 萬個のサブ DIV があり、各 DIV にはテキストが含まれており、これらのテキストは異なります。要件は、DIV をクリックすると、アラート ボックスがポップアップして DIV 內のテキストを表示することです。あなたは何をしますか。

30% の人は、$("body>div").click(...) のように、シンプルに見えて効率的であると考えて、JQuery を使用してイベントをバインドします。また、20% の人はネイティブを作成します。ステートメントをトラバースして、各 DIV にクリック イベントを追加します。10% の人は、ページがスクロールするときに、畫面上のトリガー ポイントの Y 座標を取得し、その高さを保存すると回答しました。ページのスクロールの高さに合わせて高さを加算し、各 DIV の高さで割って、どの要素がクリックされたかを確認し、この要素のコンテンツをポップアップします。 (または他の同様の方法)

上記の回答に回答した面接官は、この質問に対して減點されます。正解は、クリック イベントを外部要素に追加するだけです (この質問は BODY です)。クリック イベントをトリガーするソース要素 (DIV など) については、この要素のテキスト コンテンツをポップアップするだけです。

3. 長時間の接続維持

これはフロントエンドだけでなくバックエンドにも関係します。ほとんどの Web ページは、リソース (畫像、スタイル シート ファイル、JS ファイルなど) を取得するために http を使用します。一部のサーバーは、リクエストが來ると接続を確立してからコンテンツを出力します。出力が完了すると接続が切斷され、次のリクエストに備えて接続が再確立されます。 Web ページが 100 個のファイルを要求する必要がある場合、サーバーは 100 個の接続を確立および切斷します。確立と切斷にはそれぞれ時間がかかり (データの転送時間よりも長い場合もあります)、ページのレンダリング時間が確実に増加します。サーバー上でキープアライブを有効にすると、サーバーの負荷が軽減されるだけでなく、ページを開く時間が短縮されます。

以下の図に示すように、実際にコンテンツを受信する時間 (受信) は非常に短く、ほとんどの時間は待機 (待機) とブロック (ブロック) に費やされていることがわかります。

4. マルチ DOM のマージ

フロントエンドのパフォーマンスがますます豊富になるにつれて、それに伴う問題は、DOM が多すぎることです。一部の DOM 操作を実行すると、パフォーマンス上の問題が発生します。 DOM が多數(shù)ある場合は、DOM を結合する必要があります。複數(shù)の DOM を少數(shù)に結合するか、可能であれば CANVAS を使用して表示することを検討してください。

例: 一部の要件では、フロントエンド開発者がこの種の日付ピッカーを作成する必要があります

DOM を使用してオプション (1970 年など) をインストールする場合、ボタンに関係なく、日付オプションだけを見ると、必要な DOM は 44+12+31=87 になる可能性があります。モバイル ブラウザの場合、DOM の數(shù)は少なくなります。 、 よりいい 。製品が後で考えて、日付に加えて、時間、分、秒のオプションを追加したらどうなるでしょうか?これには、44+12+31+24+60+60=231 個の DOM が必要です。ただし、各フィールド (年、月、日) が非常に縦長のコンテナー (DIV など) にのみ含まれている場合は、內容を改行で折り返すことができ、値はいくつかのアルゴリズムを通じて取得されます。 DOMの數(shù)がかなり減っていませんか? 87 個の DOM から 3 個の DOM に。一桁少ない。

5.WebSocket

証券 Web サイトなど、多くの Web ページにはリアルタイムのデータ更新の要件があります。ページの更新を避けるために、AJAX を使用して長いポーリングが実行され、サーバーからデータが時々 (1 秒など) 取得されます。これにより、大量のリクエスト接続が発生し、フロントエンドだけでなくバックエンドにも大きな負荷がかかります。幸いなことに、HTML5 によって WebSocket が導入され、Web ページはサーバーとの長時間の接続を維持し、長時間の接続を通じてデータのリアルタイム更新を維持できます。

6. CSS 屬性の継承

CSS は親要素の CSS でいくつかの共通屬性を定義でき、子要素は継承を通じてこれらの要素を取得します。場合によっては、継承を適切に使用すると、CSS ファイルのサイズを大幅に削減できることがあります。

7.documentFragment

「リスト ページには 1,000 個の DOM を挿入する必要があります。どうやって行うのですか?」 これは私が他の人によく尋ねる質問です。

多くの場合、DOM をページに追加すると、ページが再構築されます。トラバーサルを使用してそれらを 1 つずつ追加すると、毎回ページが再レンダリングされるため、パフォーマンスが低下します。良い方法は、追加する要素を最初にキャッシュし、それらをすべて一度に追加することです。一般的には documentFragment をキャッシュに使用しますが、長い文字列 (HTML コード文字列) をキャッシュに使用するものもあります。

8. 複數(shù)のアニメーションを 1 つに結合します

CSS3 アニメーションを実行するときに、要件でマルチステップ アニメーションが必要な場合 (たとえば、DIV を Y 軸に沿って 30 度回転し、次に、DIV を Y 軸に沿って 30 度回転します) X 軸に沿って 30 度回転した後、Z 軸に沿って 30 度回転すると、これらのアニメーションをマージし、アニメーション キーフレームを使用してこれらのステップを分離できます。複數(shù)ステップの DOM 操作のコストを節(jié)約します。

9. マルチファイルの圧縮とマージ

JS および CSS ファイルの圧縮は、フロントエンドがネットワーク送信量を削減する効果的な方法です (圧縮は通常、余分なスペースと改行を削除し、置換することによって行われます)変數(shù)名またはメソッド名。YUI Compressor は優(yōu)れたツールです)

複數(shù)の小さな JS または CSS ファイルを 1 つの大きなファイルにマージするこのアプローチにより、リクエストの數(shù)が大幅に削減されます。

このウェブサイトの聲明
この記事の內容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ プログラムの最適化: 時間の複雑さを軽減する手法 C++ プログラムの最適化: 時間の複雑さを軽減する手法 Jun 01, 2024 am 11:19 AM

時間計算量は、入力のサイズに対するアルゴリズムの実行時間を測定します。 C++ プログラムの時間の複雑さを軽減するためのヒントには、適切なコンテナー (ベクター、リストなど) を選択して、データのストレージと管理を最適化することが含まれます。クイックソートなどの効率的なアルゴリズムを利用して計算時間を短縮します。複數(shù)の操作を排除して二重カウントを削減します。條件分岐を使用して、不必要な計算を回避します。二分探索などのより高速なアルゴリズムを使用して線形探索を最適化します。

PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ Mar 16, 2024 pm 12:09 PM

PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ 今日のインターネットの急速な発展の時代において、フロントエンド開発はますます重要になっています。 Web サイトやアプリケーションのエクスペリエンスに対するユーザーの要求がますます高まっているため、フロントエンド開発者は、より効率的で柔軟なツールを使用して、応答性の高いインタラクティブなインターフェイスを作成する必要があります。フロントエンド開発の分野における 2 つの重要なテクノロジーである PHP と Vue.js は、組み合わせることで完璧なツールと見なされます。この記事では、PHP と Vue の組み合わせと、読者がこれら 2 つをよりよく理解し、適用できるようにするための詳細なコード例について説明します。

Go 言語のフロントエンド テクノロジーの探求: フロントエンド開発の新しいビジョン Go 言語のフロントエンド テクノロジーの探求: フロントエンド開発の新しいビジョン Mar 28, 2024 pm 01:06 PM

Go 言語は、高速で効率的なプログラミング言語として、バックエンド開発の分野で広く普及しています。ただし、Go 言語をフロントエンド開発と結びつける人はほとんどいません。実際、フロントエンド開発に Go 言語を使用すると、効率が向上するだけでなく、開発者に新たな視野をもたらすことができます。この記事では、フロントエンド開発に Go 言語を使用する可能性を探り、読者がこの分野をよりよく理解できるように具體的なコード例を示します。従來のフロントエンド開発では、ユーザー インターフェイスの構築に JavaScript、HTML、CSS がよく使用されます。

PHP 関數(shù)の非効率性を解決するにはどのような方法がありますか? PHP 関數(shù)の非効率性を解決するにはどのような方法がありますか? May 02, 2024 pm 01:48 PM

PHP 関數(shù)の効率を最適化する 5 つの方法: 変數(shù)の不必要なコピーを避ける。參照を使用して変數(shù)のコピーを回避します。繰り返しの関數(shù)呼び出しを避けてください。単純な関數(shù)をインライン化します。配列を使用したループの最適化。

フロントエンドの面接官からよく聞かれる質問 フロントエンドの面接官からよく聞かれる質問 Mar 19, 2024 pm 02:24 PM

フロントエンド開発のインタビューでは、HTML/CSS の基本、JavaScript の基本、フレームワークとライブラリ、プロジェクトの経験、アルゴリズムとデータ構造、パフォーマンスの最適化、クロスドメイン リクエスト、フロントエンド エンジニアリング、デザインパターン、新しいテクノロジーとトレンド。面接官の質問は、候補者の技術スキル、プロジェクトの経験、業(yè)界のトレンドの理解を評価するように設計されています。したがって、候補者はこれらの分野で自分の能力と専門知識を証明するために十分な準備をしておく必要があります。

WIN7システムのスタートアップ項目を最適化する方法 WIN7システムのスタートアップ項目を最適化する方法 Mar 26, 2024 pm 06:20 PM

1. デスクトップでキーの組み合わせ (win キー + R) を押してファイル名を指定して実行ウィンドウを開き、[regedit] と入力して Enter キーを押して確定します。 2. レジストリ エディターを開いた後、[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer] をクリックして展開し、ディレクトリに Serialize 項目があるかどうかを確認します。ない場合は、エクスプローラーを右クリックして新しい項目を作成し、Serialize という名前を付けます。 3. 次に、「シリアル化」をクリックし、右側のペインの空白スペースを右クリックして、新しい DWORD (32) ビット値を作成し、「Star」という名前を付けます。

Golang とフロントエンド テクノロジーの組み合わせ: Golang がフロントエンド分野でどのような役割を果たすかを探る Golang とフロントエンド テクノロジーの組み合わせ: Golang がフロントエンド分野でどのような役割を果たすかを探る Mar 19, 2024 pm 06:15 PM

Golang とフロントエンド テクノロジーの組み合わせ: Golang がフロントエンド分野でどのような役割を果たしているかを調べるには、具體的なコード例が必要です。インターネットとモバイル アプリケーションの急速な発展に伴い、フロントエンド テクノロジーの重要性がますます高まっています。この分野では、強力なバックエンド プログラミング言語としての Golang も重要な役割を果たします。この記事では、Golang がどのようにフロントエンド テクノロジーと組み合わされるかを検討し、具體的なコード例を通じてフロントエンド分野での可能性を実証します。フロントエンド分野における Golang の役割は、効率的で簡潔かつ學びやすいものとしてです。

Vivox100s のパラメーター構成が明らかに: プロセッサーのパフォーマンスを最適化するには? Vivox100s のパラメーター構成が明らかに: プロセッサーのパフォーマンスを最適化するには? Mar 24, 2024 am 10:27 AM

Vivox100s のパラメーター構成が明らかに: プロセッサーのパフォーマンスを最適化するには?テクノロジーが急速に発展する今日、スマートフォンは私たちの日常生活に欠かせないものとなっています。スマートフォンの重要な部分であるプロセッサのパフォーマンスの最適化は、攜帯電話のユーザー エクスペリエンスに直接関係します。注目度の高いスマートフォンとして、Vivox100s のパラメータ構成は多くの注目を集めており、特にプロセッサー性能の最適化はユーザーからの注目を集めています。プロセッサは攜帯電話の「頭脳」として、攜帯電話の動作速度に直接影響します。

See all articles