Web アプリケーションを構築するときに常に注意を払う必要がある最も重要なことの 1 つはパフォーマンスです。
よく言われるように、パフォーマンスは機能です。
デザイナー、開発者、ユーザーのいずれであっても、アプリに関しては待つことが嫌いであることを直感的に知っているでしょう。物事が十分に速く機能しなかったり、思ったよりも長く待たなければならなかった場合、私たちはイライラします。
この目的のために、最新の Web 開発フレームワークのほとんどは、API を使用して何らかのタイプのキャッシュを実装できます。WordPress (ベースではありますが) も例外ではありません。
そこで、WordPress が Web アプリケーション開発の基盤として実行可能な選択肢である理由についての議論を続ける中で、コア アプリケーションによって提供される API、それらがどのように機能するか、そしてそれらをどのように活用して利点を生むことができるのかを見ていきます。追加のキャッシュ プラグインを使用してパフォーマンスをさらに向上させる方法についても説明します。
つまり、キャッシュによって、頻繁に取得されるデータをメモリ内のどこかに保存して、すぐに取得できるようにすることができるため、重要です。
全体像を見ると、複数のユーザーが Web サイトを閲覧すると、このことがますます明らかになります。つまり、1 人 (またはごく少数の人) が Web サイトにアクセスし、その Web サイトがそのデータをデータベースに保存している場合、ページが読み込まれるたびに、その情報を Web サイトから取得する必要があるということです。データベースに保存され、ページに挿入されてユーザーに返されます。
一定レベルのキャッシュが確立されていれば、データベースを頻繁に呼び出す必要はありません。代わりに、メモリ内の領域から情報を取得できるため、取得が速くなり、ページの読み込み時間が短縮されます。
これに関する技術的な詳細については、この記事の後半で詳しく紹介します。
WordPress を長期間使用している場合は、利用可能な多数のキャッシュ プラグインに精通しているでしょう。
これらは、Web サイトや Web アプリケーションを高速化するための優れたソリューションであることは間違いありませんが、疑問が生じます。プラグインを使用してこれを実行できるのであれば、なぜ心配する必要があるのでしょうか。
もちろん、これは有効な質問ですが、プラグインが単独でできることには限界があります。
開発者は、キャッシュ メカニズムなしでもパフォーマンスが向上するだけでなく、キャッシュ プラグインによってアプリケーションが大幅に強化されるような方法でアプリケーションを構築できます。
私が言いたいのは、これらのキャッシュ プラグインは、テーマやアプリケーションがどこかに保存したいデータを探すということです。これを独自の作業コンテキストでプログラム的に行うことができれば、これらのプラグインはより大きなエフェクト パフォーマンスを生み出すでしょう。
利用可能な API を理解した後、この記事の後半でこのトピックを再検討し、API がキャッシュ プラグインのパフォーマンスをどのように向上させることができるかを見ていきます。
第 1 レベルのキャッシュをアプリケーションに導入するには、WordPress の Transients API を活用する必要があります。まず、トランジェントの公式の定義は「短期間のみ存在するもの」であることに注意してください。
Codex Alimentarius での定義:
[一時 API] は、キャッシュされたデータにカスタム名と、データの有効期限が切れて削除されるまでの時間範囲を指定して、データベースに一時的に保存するためのシンプルで標準化された方法を提供します。しかし、それは何を意味するのでしょうか?結局のところ、データは依然としてデータベースに保存されているのですが、これが他のデータベース テーブル (
wp_options テーブルなど) にデータを保存するよりも優れているのはなぜでしょうか?
トランジェントを設定する
具体的には、データを一意に識別するキー値と、そのキーに関連付けられた値が必要です。また、テーブルを更新する前にテーブルにデータを保持するための有効期限 (秒単位) も必要です。
現在のユーザーの名前を、サイト上で最後または最後にアクティブだったユーザーとして保存するとします。これは、
wp_get_current_user() 関数を使用して行うことができます。
set_transient( 'most_recent_user', wp_get_current_user()->user_login, 12 * HOUR_IN_SECONDS )
定数は WordPress 3.5 で導入されたものであることに注意してください。定数の完全なリストはここから入手できます。
セットアップする方法 ですが、これではトランジェントが存在しない場合、またはすでに存在する場合にトランジェントを管理する方法がまだ説明されていません。
これについては、この記事の後半で詳しく説明します。トランジェントの取得に関しては、メタデータやオプションなどの取得と非常に似ています。つまり、情報を取得するためのキーを知る必要があるだけです。
したがって、上記の例と一貫性を保つために、次の呼び出しを使用してアプリケーションの最新のユーザーを取得できます:
get_transient('most_recent_user');
これは明らかに、保存したあらゆる種類の情報を返します。 または トランジェントの有効期限が切れた (つまり、12 時間以上が経過した) 場合、関数はブール値 FALSE## を返します。 # 価値。###
これは、特にキャッシュされた値を読み取ろうとしており、一時ストレージで使用できない場合は別のデータ ソースから値を取得する必要がある場合に覚えておくべき重要な点です。
この記事を終える前に、これを実行する完全な例を見ていきます。
トランジェントの削除
さらに、一時的な値の削除が失敗した場合、関数は
を返し、それ以外の場合は FALSE
を返します。
期限切れの一時的な問題
たとえば、
MINUTE_IN_SECONDS は、特に分、時間、または日を乗算する場合、60 よりも使いやすいです。
WordPress 3.5 以降、これらの計算を読みやすくするために、いくつかの定数がコア アプリケーションに追加されました。
MINUTE_IN_SECONDS
HOUR_IN_SECONDS
DAY_IN_SECONDS
WEEK_IN_SECONDS
YEAR_IN_SECONDS
使いやすく、読み書きも簡単になりましたね。
この時点で、オプション テーブルに値を保存することから始めてトランジェントをセットアップする方法を理解することが重要だと思います。
オプションを
wp_options
テーブルに保存します。
値 値がキャッシュに存在する場合は、オプション テーブルに戻りますが、値が存在する場合は、それを使用します。
これはプラグインではどのように機能しますか?
上記のことを念頭に置いて、プラグインのパフォーマンスを向上させるためにトランジェントを使用する方法の問題を再検討してみましょう。
利用可能な API を理解した後、この記事の後半でこのトピックを再検討し、API がキャッシュ プラグインのパフォーマンスをどのように向上させることができるかを理解します。
そうは言っても、キャッシュと WordPress データベースはデータベース内のデータの
場所に関係しています。
块引用>一時データは他のデータとは異なる場所に保存されるため、プラグイン (memcached に基づくプラグインなど) は、一時データが保存されているデータを検索し、その場所からメモリにデータをロードします。したがって、データが要求されると、データはメモリから取得されます。データが存在しない場合は、データベースから取得されます。
最も重要なことは、正しくプログラムされていれば、キャッシュからのデータの読み取りやデータベースからのデータの取得に失敗したときに、そのデータがキャッシュに戻されて、次回取得されたときにもキャッシュに挿入されることです。 。メモリ内で利用可能です。最後に、一時的な情報について注意すべき重要な点は、有効期限があるということです。これは、データがデータベースのその領域に特定の期間のみ保存されることを意味します。
このためには、これを考慮する必要があります。これは、トランジェントを取得したいときは常に、トランジェントが存在することを確認する必要があることを意味します。そうでない場合は、それらをその場所から取り出し、正しい場所に保管します。
カスタムクエリ
これまで、Web アプリケーション開発の基本に関連する WordPress が提供する機能の多くを紹介してきました。
しかし、最後にカバーすべき主要なコンポーネントが 1 つあります。それは、カスタム クエリの処理方法です。もちろん、
WP_Query
やWP_User_Query
など、WordPress の特定の目的のために設計されたクエリの実行に関連する優れた API がいくつかあります。定義された WordPress オブジェクトや適切なデータ クレンジングを可能にするメソッドを使用して、データベースに対してカスタム クエリを作成できるネイティブ ツールの一部について説明します。
ただし、これらすべてとその他のことについては、次の記事で説明します。
以上がWordPress Web アプリケーション開発ガイド: 利用可能な機能の詳細な説明 (パート 7): キャッシュ テクノロジの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。