Webパフォーマンスのトリック - 基本を超えて
この記事はNew Relicが後援しました。 SitePointを可能にしてくれたスポンサーをサポートしてくれてありがとう! ここで長年にわたって多くのパフォーマンスの話をしてきました。そして、いくつかのより高度な側面でトピックを再訪する時が来たと信じています。この記事に記載されているアプローチは、厳密にPHP関連するものではありませんが、適切に使用すれば、アプリケーションがまったく新しいレベルになることを確認できます。通常のものはカバーしないことに注意してください。CSS、JS、および画像のリクエストが少なく、より高速なWebサイトを意味し、同様のヒントは一般的な知識です。代わりに、あまり知られていない/使用されているアップグレードに焦点を当てます。
キーテイクアウト
HTML要素と不必要なタグを最小化すると、Webパフォーマンスの向上に役立ちます。事前にリソースをロードするためにプリフェッチテクニックを使用すると、速度とユーザーエクスペリエンスが向上します。 CSSLINTやCSSなどのツールを使用してCSSを検証して、エラーと潜在的なパフォーマンスの問題を検出するために説明します。 CSS 2Dを使用すると、トップ/左の代わりにオブジェクトを移動するために翻訳することもパフォーマンスを高めることができます。
- GoogleのPageSpeedモジュールは、Webサイトの最適化のためのベストプラクティスを自動的に実装し、静的リソースのサービングを改善し、CSSとJavaScriptの模倣と最適化、画像サイズの削減
- html
- 不要なタグを削除します
- 要素が少ないほど良い。不要なHTMLを削除します
vs.
-
もちろん、すべてのシナリオには適用されませんが、できるだけ多くのDOM要素を削除できるようにHTMLを構成します。
- 不要なタグを省略して、HTMLドキュメントのファイルサイズを減らすこともできます。これはかなりハッキーに見える傾向があり、標準に反しているように見えるので、生産に展開するときにのみ行う必要があります。そうすれば、同じコードで作業する他の開発者を混乱させません。
prefetch
ユーザーがサイトにアクセスした後に別のドメインに移動することを期待する場合、またはたとえば、画像のようなサブドメインで静的リソースをホストする場合、example.com、DNSプリフェッチは、それが必要とする数少ないミリ秒を削除するのに役立ちますDNSサーバーImages.example.comをIPアドレスに解決します。ゲインはそれほど多くはありませんが、蓄積されているため、ユーザーのブラウザにしているリクエストからまともな読み込み時間を削ります。 DNSプリフェッチは、
のようなで行われます。現在のページを使用した後に現在の訪問者がロードするとサブドメインがある場合、DNSプリフェッチを使用しない理由はありません。次の訪問でいくつかのリソースが必要になることがわかったら、それらをプリフェッチしてブラウザキャッシュに保存することができます。たとえば、ブログがあり、そのブログに2部構成の記事がある場合は、2番目の部分からの静的リソース(つまり画像)が事前にロードされていることを確認できます。これは、次のように行われます。 PicasaのWebアルバムは、これを広範囲に使用して、現在視聴している画像に2つの次の画像を事前にフェッチします。古いブラウザでは、JavaScriptにPhantom Image要素をロードすることでこれを実現できます。
これにより、画像がキャッシュにロードされますが、どこにも使用しません。ただし、この方法はCSSおよびJSファイルでは機能しません。そのため、古代のブラウザでプリフェッチする場合は、リソースを使用して独創的でなければなりません。 xmlhttprequestスプリングスを思い起こさせる - ajaxを介してそれらをロードし、それらをどこにも使用しないでください。それをやってのける方法については、ここを参照してください。<span><span><span><div</span>></span> </span> <span><span><span><div</span>></span> </span> <span><span><span><p</span>></span>Some of my<span><span><span</span>></span>text<span><span></span</span>></span>.<span><span></p</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span></span>
ログイン後にコピーページ全体をプレイしてプレレンダーすることもできます。ページのプリフェッチとは、DOMコンテンツ(HTML)を取得することを意味します。これは通常、ほとんどのコンテンツが実際にJavaScript、CSS、画像にあるため、それほど速度を高めません。コンテンツはページプリフェッチで取得されていません。このタイプのフェッチは現在、Firefoxによってのみ完全にサポートされています。プレレンダリングは別の問題です。プレレンダリングはChromeのみであり、舞台裏のDOMを取得するだけでなく、CSS、JS、画像の形で関連するすべてのコンテンツを取得します。実際、それはすでにページ全体をバックグラウンドでレンダリングしています。ページはRAMに座っており、完全に開いてレンダリングされ、訪問を待っています。これにより、ユーザーがプレレンダリングリンクをクリックすると、変更が瞬時になりますが、前の段落で説明されているのと同じ問題を導入します。さらに、サーバーはこのプレレンダーを訪問として登録するため、ユーザーが実際に心を変えてプレレンダリングされたWebサイトを開かない場合、歪んだ分析を取得する可能性があります。プレレンダーの構文は次のとおりです
現時点では、プレレンダリングまたはプリフェッチされているページを検出する適切な方法は1つだけです。これは、AndroidブラウザとOpera Miniを除くすべての主要なブラウザで現在サポートされているページVisibility APIを使用しています。このAPIを使用して、ページが実際に監視されていることを確認し、その後、あなたがしている可能性のある分析トラッキングを開始します。
- CSSLINTを使用してCSSを検証し、エラーと潜在的なパフォーマンスの問題を指摘します。最も効率的な可能なCSSを書くために、csslint wikiに記載されているルールを読んで尊重します。
css説明
SQLがデータベースの世界で説明しているのと同じように、https://github.com/josh/css-explainの気の利いたCSS説明ツールもあります。これを使用して、CSSセレクターを分析できます。すぐにテストしたい場合は、このファイルの内容をブラウザのコンソールに貼り付け、cssexplain( '。item.subclass.anotherclass')のようなコマンドを発行するだけです。
-
目標は、1〜10のスケールで可能な限り低いスコアを取得することです。また、JSFiddleで試してみることができます。結果はあまり真剣に受け止められていませんが(CSSSlintのアドバイスに従った方が良いです)、彼らはまだセレクターの複雑さを説明し、少なくとも考えられる問題を示唆するのに良い仕事をしています。
翻訳対上/左
CSS 2D翻訳を使用して、トップ/左ではなくオブジェクトを移動します。ポール・アイリッシュとクリス・コイヤーがこのような素晴らしい仕事をしたとき、これを詳細に説明しようとする意味はありません。必ず彼らの素材を読んだり見たり、この知識を焼いたりしてください -
。可能な限り上/左に翻訳してください
-
スムーズにスクロールします
FacebookやGoogleなどのサイトが agesを開くときにスクロール可能になることに気付いたかもしれません。ウォームアップするのに時間が必要なようです。これは、今日の多くのウェブサイトで問題であり、UXの巨大なガットパンチです。ページをスムーズにスクロールさせることは、特に何を注意すべきかを知っている場合は、見た目ほど難しくありません。スクロールラグを減らすための鍵は、ペイントを最小限に抑えることです。画面上のコンテンツがフレームからフレームに変更されたときに塗料が起こること、ブラウザは画面で塗り直す必要があります。新しい外観を計算し、この新しい外観をスラップする必要がありますレンダリングされたWebサイトが構成するレイヤーの1つ。これらの問題の詳細については、塗料の問題を診断する方法を調べるには、Paul Lewisの優れた投稿を参照してください。
サーバー
- 簡単な勝利でPHPを最適化します
-
PHP側からアプリをスピードアップするためにできることはたくさんあります。簡単な勝利については、Fredric Mitchellの最後の記事またはSitePointの他のパフォーマンス関連記事をご覧ください。
GoogleのPageSpeedモジュールを使用してください
GoogleによるPagesSpeedモジュールは、NginxとApacheにインストールできるモジュールであり、Webサイトの最適化のためのいくつかのベストプラクティスを自動的に実装します。モジュールは、クライアントが知覚したようにWebサイトのパフォーマンスを評価し、すべてのルールが可能な限り尊重されていることを確認し、特に静的リソースのサービングを改善します。使用していないメタデータを削除することにより、CSSとJavaScriptを縮小、最適化、および圧縮し、ブラウザキャッシュをよりよく利用するためにヘッダーを適切に有効にすることにより、画像サイズを削減します。何よりも - あなたからのアーキテクチャの変更は必要ありません。サーバーに差し込むだけで動作します。モジュールをインストールするには、これらの手順に従ってください。NGINXのソースからビルドする必要がありますが、それは単なるカップルコマンドです。 PagesSpeedを適切に紹介するには、次のビデオを参照してください。今では少し長くて古いですが、それでも信じられないほど貴重なリソースです。
- spdy
-
画像にWebpを使用してください
WebPは、JPG、PNG、GIFのすべてを交換することを目的とした画像形式です。アルファ層(透明性)、アニメーション、ロスレス、損失のある圧縮などをサポートします。ブラウザの採用は非常に遅いですが、前述のPagesSpeedモジュールのようにWebP変換を自動化するツールを使用して、最近のすべての画像タイプをサポートするのは簡単です(画像をFlyで自動的にWebpに変換できます)。 Webpに関する詳細な紹介と議論については、この包括的なガイドを参照してください。
zopfli - で圧縮します
Zopfli圧縮を使用して、静的リソースを事前に圧縮します。これはオープンソースの圧縮アルゴリズムであり、再びGoogleが先導し、オンラインで使用される通常の圧縮方法と比較すると圧縮が3〜8%増加します。小規模なWebサイトではこれはほとんど違いが生じませんが、アプリをスケーリングしたり、多くのクライアントに静的コンテンツを提供したりする場合、Google Web Fontsチームが報告しているように、顕著な違いが生じます。 >
結論
Webサイトのパフォーマンスを改善するにはどうすればよいですか?
ウェブサイトのパフォーマンスを改善する方法はいくつかあります。最も効果的な方法の1つは、画像を最適化することです。大規模で高解像度の画像はサイトを遅くする可能性があるため、サイズを変更、圧縮、最適化することが重要です。別の方法は、ファイルのサイズを縮小してサイトをスピードアップできるCSSおよびJavaScriptファイルをマイニングすることです。コンテンツ配信ネットワーク(CDN)を使用して、世界中のユーザーによりコンテンツをより迅速に配信することもできます。ユーザーエクスペリエンスに大きな影響を与えます。ウェブサイトの負荷が遅いことは、ユーザーを苛立たせ、より高い反発率につながる可能性があります。一方、高速負荷のWebサイトは、ユーザーの満足度を向上させ、エンゲージメントを向上させ、潜在的により高い変換率につながる可能性があります。したがって、ウェブサイトのパフォーマンスを最適化して可能な限り最高のユーザーエクスペリエンスを提供することが重要です。ウェブサイトのパフォーマンスに大きく影響します。たとえば、不必要なタグ、テーブルの過度の使用、およびフォームの不適切な使用は、ウェブサイトを遅くする可能性があります。一方、クリーンでよく構造化されたHTMLは、ウェブサイトの読み込み速度と全体的なパフォーマンスを向上させることができます。バックグラウンドでリソースをロードするためにプリロードし、サーバープッシュを実装して単一のクライアント要求に複数の応答を送信し、サービスワーカーを使用してリソースをキャッシュしてキャッシュから直接提供します。これらの手法はあなたのウェブサイトのパフォーマンスを大幅に改善することができますが、ウェブテクノロジーと慎重な実装を深く理解する必要があります。 GoogleのPageSpeed Insights、GTMetrix、WebPagetestなど、ウェブサイトのパフォーマンスを測定します。これらのツールは、ウェブサイトの読み込み速度、リソースの使用、その他のパフォーマンスメトリックに関する詳細な洞察を提供できます。また、ウェブサイトのパフォーマンスを改善する方法に関する推奨事項を提供することもできます。
WebサイトのパフォーマンスにおけるJavaScriptの役割は何ですか? Webサイトの機能とインタラクティブを強化することはできますが、書かれていない、または過度のJavaScriptがWebサイトを遅くすることができます。したがって、効率的なJavaScriptを作成し、その使用を最小限に抑え、Webサイトのパフォーマンスを改善するためにJavaScriptファイルを延期または非同期にロードすることが重要です。CSSはWebサイトのパフォーマンスにどのように影響しますか?
CSSは、いくつかの方法でWebサイトのパフォーマンスに影響します。大規模で複雑なCSSファイルはウェブサイトを遅くすることができるため、CSSを清潔でよく組織化することが重要です。また、パフォーマンスの問題を引き起こす可能性があるため、過剰なCSSアニメーションの使用を避ける必要があります。さらに、CSSスプライトを使用して複数の画像を1つに組み合わせて、HTTPリクエストの数を減らし、ウェブサイトの読み込み速度を改善する必要があります。 >サーバーの応答時間は、サーバーがブラウザからの要求に応答するのにかかる時間です。サーバーの応答時間が遅いと、ウェブサイトが大幅に遅くなる可能性がありますが、サーバーの応答時間が速いと、ウェブサイトの読み込み速度が向上します。したがって、信頼できるホスティングプロバイダーを選択し、サーバー構成を最適化してサーバーの応答時間を改善することが重要です。ますます多くのユーザーがスマートフォンやタブレットでWebを閲覧しているため、重要です。レスポンシブデザインを使用し、モバイルの画像を最適化し、重いJavaScriptとCSSの使用を減らし、モバイルに優しいナビゲーションを実装することにより、モバイルデバイス用のWebサイトを最適化できます。また、さまざまなモバイルデバイスでWebサイトをテストして、すべてのモバイルデバイスを確認する必要があります。
以上がWebパフォーマンスのトリック - 基本を超えての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

Restapiの設計原則には、リソース定義、URI設計、HTTPメソッドの使用、ステータスコードの使用、バージョンコントロール、およびHATEOASが含まれます。 1。リソースは名詞で表され、階層で維持される必要があります。 2。HTTPメソッドは、GETを使用してリソースを取得するなど、セマンティクスに準拠する必要があります。 3.ステータスコードは、404など、リソースが存在しないことを意味します。 4。バージョン制御は、URIまたはヘッダーを介して実装できます。 5。それに応じてリンクを介してhateoasブーツクライアント操作をブーツします。

PHPでは、Try、Catch、最後にキーワードをスローすることにより、例外処理が達成されます。 1)TRYブロックは、例外をスローする可能性のあるコードを囲みます。 2)キャッチブロックは例外を処理します。 3)最後にブロックは、コードが常に実行されることを保証します。 4)スローは、例外を手動でスローするために使用されます。これらのメカニズムは、コードの堅牢性と保守性を向上させるのに役立ちます。

PHPの匿名クラスの主な機能は、1回限りのオブジェクトを作成することです。 1.匿名クラスでは、名前のないクラスをコードで直接定義することができます。これは、一時的な要件に適しています。 2。クラスを継承したり、インターフェイスを実装して柔軟性を高めることができます。 3.使用時にパフォーマンスとコードの読みやすさに注意し、同じ匿名のクラスを繰り返し定義しないようにします。
