ホームページ バックエンド開発 PHPチュートリアル Web アプリケーション最適化のヒント_PHP チュートリアル

Web アプリケーション最適化のヒント_PHP チュートリアル

Jul 13, 2016 pm 05:36 PM
web による 最適化 著者 情報 できる そして 応用 スキル 記事 時間 追い越す リンク

著者: Fenng|転載可能です。転載する場合は、必ず記事の出典、著者情報、著作権表示をハイパーリンクの形式で明記してください。
ウェブサイト: http://www.dbanotes.net/web/ flickr_web_tech.html
Cal Henderson は有名な Flickr Web サイトの開発者の 1 人です。 Serving JavaScript Fast という記事で、Flickr サイト アプリケーションを最適化するためのテクニックが紹介されており、読んで非常に有益だと感じました。 「他人のパンを噛む」、記事の主な内容を要約します。

Flickr は Web 2.0 の代表的なサイトです。一般的な Web サイトに共通するコンテンツの最適化に加えて、直面するネットワークの問題は、JavaScript や CSS の頻繁な変更によって引き起こされる展開と配布の複雑さにも柔軟に対処する必要があります。

ファイル サイズ戦略を設定するときに最初に直面する問題は、すべての JavaScript と CSS を 1 つのファイルに入れるか、それとも複数のファイルに分割するかということです。ネットワーク リクエストを減らすという観点から見ると、前者はより良く、後者はより悪くなります。ただし、並行して見ると、IE と Firefox は両方とも、デフォルトでは 1 つのドメインから同時に 2 つのリソースしか要求できません。これにより、多くの場合、ユーザーに不快な思いが生じます。すべてのファイルをダウンロードする必要があります。適切なページを参照してください。ファイル数をできるだけ少なくしながら JavaScript と CSS を複数のサブファイルに分割することで妥協策を講じていますが、これにより開発は複雑になりますが、パフォーマンスは大幅に向上します。

圧縮最適化の問題 サイト コンテンツの圧縮が比較的一般的な Web 最適化方法であることは疑いの余地がありません。ただし、常に望ましい効果が得られるとは限りません。その理由は、mod-gzip モジュールはサーバー側の CPU リソースを消費するだけでなく、クライアント側の CPU リソースも消費するためです。さらに、mod_gzip がファイルを圧縮した後に作成される一時ファイルがディスク上に配置され、これも重大な問題を引き起こすためです。ディスク IO には Flickr Httpd 2.x 以降でサポートされている mod_deflate モジュールが使用されます。圧縮操作はすべてメモリ内で実行されます。 mod_deflate は Httpd 1.x では使用できませんが、RAM ディスクを作成することで間接的にパフォーマンスを向上させることができます。

もちろん、mod_gzip が役に立たないわけではありません。また、圧縮を使用する場合は、画像ファイルを圧縮する必要はありません (Flickr には多くの画像があります)。利点) Flickr は JavaScript と CSS のみを圧縮します。mod_gzip の新しいバージョンでは、mod_gzip_update_static オプションを設定することで、事前に圧縮されたファイルを自動的に処理できます。また、この機能が一部の古いバージョンのブラウザーで問題を引き起こす可能性があることも指摘しています。

もう 1 つの主な圧縮手段は、JavaScript の場合、コメントの削減、スペースの結合、コンパクトな構文の使用などの小さなトリックを実行できます (もちろん、すべての Google スクリプトは非常に読みにくく、非常にコンパクトですが、同様の考え方をしています)。 , この方法で処理された JavaScript には、解析が難しい括弧が多数含まれている可能性があります。Flickr は Dojo Compressor を使用して解析ツリーを構築します。 Dojo Compressor はオーバーヘッドが非常に低く、エンド ユーザーに対して透過的です。JavaScript 処理メソッドが導入されており、単純な正規表現置換 (複数のスペースを 1 つのスペース文字に置き換えるなど) によって、CSS 処理を実行できます。圧縮率が 50% に達します。

キャッシュの最適化 Flickr 開発者は、HTTP 1.1 仕様で定義された Etag および Last-Modified メカニズムを最大限に利用して、キャッシュの効率を向上させました。Cal が負荷分散条件下で e-Tag トリックを導入したことは注目に値します。ファイル調整時間とファイル サイズを通じて E-Tag を取得するように設定できます。デフォルトでは、Apache はファイル ノードを通じて e-Tag を取得します。もちろん、これは if-modified-since に影響するため、完璧ではありません。

mod_rewrite を柔軟に活用する Flickr Web サイトのアプリケーションは毎日ビルドされる (Daily Build) と言われています。 柔軟な仕組みがなければ、これは考えられないことだと思います。さらに、Flickr のようなサイトでは、コンテンツの変更を同期するのが頭の痛い問題です。彼らの武器は、mod_rewrite の柔軟な使用です。 URL 書き換えルールを設定することで、異なる環境への切り替えが簡単になります。簡単そうに聞こえますが、特定の Web テクノロジーのスキルがなければ、これを実行するのはどれほど簡単でしょうか?!

これらの主要なメソッドを適用することで、夢のような高性能な Flickr が完成しました。

ところで: Flickr には中国にサーバーがないため、本土ユーザーのアクセス速度について言及することはできません:(


--終わり

この記事 [Flickr 開発者のための Web アプリケーション最適化のヒント] は dbanotes.net からのものです

http://www.bkjia.com/PHPjc/486629.html

本当http://www.bkjia.com/PHPjc/486629.html技術記事著者: Fenng | 転載する場合は、必ず記事の出典、著者情報、著作権表示をハイパーリンクの形で明記してください: http://www.dbanotes.net/web/flickr_web_tech.htmlヘンデ…
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

iPhoneのホーム画面から削除を元に戻す方法 iPhoneのホーム画面から削除を元に戻す方法 Apr 17, 2024 pm 07:37 PM

ホーム画面から重要なものを削除してしまい、元に戻そうとしていますか?さまざまな方法でアプリのアイコンを画面に戻すことができます。 iPhoneでホーム画面から削除を元に戻す方法 前述したように、iPhoneでこの変更を復元する方法はいくつかあります。方法 1 – App ライブラリのアプリ アイコンを置き換える App ライブラリから直接ホーム画面にアプリ アイコンを配置できます。ステップ 1 – 横にスワイプして、アプリ ライブラリ内のすべてのアプリを見つけます。ステップ 2 – 前に削除したアプリのアイコンを見つけます。ステップ 3 – アプリのアイコンをメインライブラリからホーム画面上の正しい場所にドラッグするだけです。これが応用図です

Win11 ヒントの共有: ワン トリックで Microsoft アカウントのログインをスキップする Win11 ヒントの共有: ワン トリックで Microsoft アカウントのログインをスキップする Mar 27, 2024 pm 02:57 PM

Win11 のヒントの共有: Microsoft アカウントのログインをスキップする 1 つのトリック Windows 11 は、新しいデザイン スタイルと多くの実用的な機能を備えた、Microsoft によって発売された最新のオペレーティング システムです。ただし、一部のユーザーにとっては、システムを起動するたびに Microsoft アカウントにログインしなければならないのが少し煩わしい場合があります。あなたがそのような人であれば、次のヒントを試してみるとよいでしょう。これにより、Microsoft アカウントでのログインをスキップして、デスクトップ インターフェイスに直接入ることができるようになります。まず、Microsoft アカウントの代わりにログインするためのローカル アカウントをシステムに作成する必要があります。これを行う利点は、

ベテラン必携:C言語の*と&のヒントと注意点 ベテラン必携:C言語の*と&のヒントと注意点 Apr 04, 2024 am 08:21 AM

C 言語では、他の変数のアドレスを格納するポインタを表し、& は変数のメモリ アドレスを返すアドレス演算子を表します。ポインタの使用に関するヒントには、ポインタの定義、ポインタの逆参照、ポインタが有効なアドレスを指していることの確認が含まれます。アドレス演算子の使用に関するヒントには、変数アドレスの取得、配列要素のアドレスを取得するときに配列の最初の要素のアドレスを返すことなどが含まれます。 。ポインター演算子とアドレス演算子を使用して文字列を反転する実際の例。

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

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

Win11 の裏技が明らかに: Microsoft アカウントのログインをバイパスする方法 Win11 の裏技が明らかに: Microsoft アカウントのログインをバイパスする方法 Mar 27, 2024 pm 07:57 PM

Win11 のトリックが明らかに: Microsoft アカウントのログインをバイパスする方法 最近、Microsoft は新しいオペレーティング システム Windows11 を発表し、広く注目を集めています。以前のバージョンと比較して、Windows 11 はインターフェイスのデザインや機能の改善の点で多くの新しい調整を加えましたが、いくつかの議論も引き起こしました. 最も目を引く点は、ユーザーが Microsoft アカウントでシステムにログインすることを強制することです。ユーザーによっては、ローカル アカウントでログインすることに慣れており、個人情報を Microsoft アカウントにバインドすることに抵抗がある場合があります。

Go 言語の利点と応用シナリオを探る Go 言語の利点と応用シナリオを探る Mar 27, 2024 pm 03:48 PM

Go 言語は、Google によって開発され、2007 年に初めてリリースされたオープンソース プログラミング言語です。シンプルで習得しやすく、効率的で同時実行性の高い言語となるように設計されており、ますます多くの開発者に好まれています。この記事では、Go 言語の利点を探り、Go 言語に適したいくつかのアプリケーション シナリオを紹介し、具体的なコード例を示します。利点: 強力な同時実行性: Go 言語には、同時プログラミングを簡単に実装できる軽量スレッドのゴルーチンのサポートが組み込まれています。 Goroutin は go キーワードを使用して開始できます

Golang のブラウザ サポート: インタラクティブな Web の構築 Golang のブラウザ サポート: インタラクティブな Web の構築 Apr 07, 2024 pm 04:03 PM

Go は、ブラウザーで実行されるインタラクティブな Web アプリケーションを構築します。手順: Go プロジェクトと main.go ファイルを作成し、メッセージを表示するための HTTP ハンドラーを追加します。ユーザー入力と送信用に HTML と JavaScript を使用してフォームを追加します。 Go アプリケーションに POST リクエストの処理を追加し、ユーザー メッセージを受信して​​応答を返します。 FetchAPI を使用して POST リクエストを送信し、サーバーの応答を処理します。

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

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

See all articles