ホームページ  >  記事  >  CMS チュートリアル  >  WordPress Web アプリケーション開発ガイド: 利用可能な機能の詳細な説明 (パート 7): キャッシュ テクノロジ

WordPress Web アプリケーション開発ガイド: 利用可能な機能の詳細な説明 (パート 7): キャッシュ テクノロジ

WBOY
WBOYオリジナル
2023-08-30 12:37:02863ブラウズ

WordPress Web应用开发指南:可用功能详解(第7部分):缓存技术

Web アプリケーションを構築するときに常に注意を払う必要がある最も重要なことの 1 つはパフォーマンスです。

よく言われるように、パフォーマンスは機能です。

デザイナー、開発者、ユーザーのいずれであっても、アプリに関しては待つことが嫌いであることを直感的に知っているでしょう。物事が十分に速く機能しなかったり、思ったよりも長く待たなければならなかった場合、私たちはイライラします。

この目的のために、最新の Web 開発フレームワークのほとんどは、API を使用して何らかのタイプのキャッシュを実装できます。WordPress (ベースではありますが) も例外ではありません。

そこで、WordPress が Web アプリケーション開発の基盤として実行可能な選択肢である理由についての議論を続ける中で、コア アプリケーションによって提供される API、それらがどのように機能するか、そしてそれらをどのように活用して利点を生むことができるのかを見ていきます。追加のキャッシュ プラグインを使用してパフォーマンスをさらに向上させる方法についても説明します。


なぜキャッシュが重要なのでしょうか?

つまり、キャッシュによって、頻繁に取得されるデータをメモリ内のどこかに保存して、すぐに取得できるようにすることができるため、重要です。

全体像を見ると、複数のユーザーが Web サイトを閲覧すると、このことがますます明らかになります。つまり、1 人 (またはごく少数の人) が Web サイトにアクセスし、その Web サイトがそのデータをデータベースに保存している場合、ページが読み込まれるたびに、その情報を Web サイトから取得する必要があるということです。データベースに保存され、ページに挿入されてユーザーに返されます。

一定レベルのキャッシュが確立されていれば、データベースを頻繁に呼び出す必要はありません。代わりに、メモリ内の領域から情報を取得できるため、取得が速くなり、ページの読み込み時間が短縮されます。

これに関する技術的な詳細については、この記事の後半で詳しく紹介します。

プラグインについてはどうですか?

WordPress を長期間使用している場合は、利用可能な多数のキャッシュ プラグインに精通しているでしょう。

これらは、Web サイトや Web アプリケーションを高速化するための優れたソリューションであることは間違いありませんが、疑問が生じます。プラグインを使用してこれを実行できるのであれば、なぜ心配する必要があるのでしょうか。

もちろん、これは有効な質問ですが、プラグインが単独でできることには限界があります。

開発者は、キャッシュ メカニズムなしでもパフォーマンスが向上するだけでなく、キャッシュ プラグインによってアプリケーションが大幅に強化されるような方法でアプリケーションを構築できます。

私が言いたいのは、これらのキャッシュ プラグインは、テーマやアプリケーションがどこかに保存したいデータを探すということです。これを独自の作業コンテキストでプログラム的に行うことができれば、これらのプラグインはより大きなエフェクト パフォーマンスを生み出すでしょう。

利用可能な API を理解した後、この記事の後半でこのトピックを再検討し、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 )

ここでは、次の点に注意してください:

    システム内の最新のユーザーを現在ログインしているユーザーとして識別し、これを 12 時間保存します。
  • HOUR_IN_SECONDS 定数は WordPress 3.5 で導入されたものであることに注意してください。定数の完全なリストはここから入手できます。
これがトランジェントを

セットアップする方法 ですが、これではトランジェントが存在しない場合、またはすでに存在する場合にトランジェントを管理する方法がまだ説明されていません。

これについては、この記事の後半で詳しく説明します。

トランジェントの取得

トランジェントの取得に関しては、メタデータやオプションなどの取得と非常に似ています。つまり、情報を取得するためのキーを知る必要があるだけです。

したがって、上記の例と一貫性を保つために、次の呼び出しを使用してアプリケーションの最新のユーザーを取得できます:

get_transient('most_recent_user');

これは明らかに、保存したあらゆる種類の情報を返します。 または トランジェントの有効期限が切れた (つまり、12 時間以上が経過した) 場合、関数はブール値 FALSE## を返します。 # 価値。### これは、特にキャッシュされた値を読み取ろうとしており、一時ストレージで使用できない場合は別のデータ ソースから値を取得する必要がある場合に覚えておくべき重要な点です。

この記事を終える前に、これを実行する完全な例を見ていきます。

トランジェントの削除

最後に、トランジェントを削除して完全に削除する必要がある場合、または定義された有効期限が切れる前に削除して別の値に置き換える必要がある場合は、次の関数を使用するだけです:

delete_transient('most_recent_user');

さらに、一時的な値の削除が失敗した場合、関数は

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

テーブルに保存します。
  1. 次に、値がキャッシュに存在するかどうかを確認します。
  2. がキャッシュに存在する場合は削除し、存在しない場合は追加します。
  3. 次に、コードの後半で次のことを行います:
  4. キャッシュから値関数を取得してみます。

値がキャッシュに存在する場合は、オプション テーブルに戻りますが、値が存在する場合は、それを使用します。

  1. そうは言っても、見てみましょう:
  2. リーリー
  3. この例は完全ではないことに注意してください。よりわかりやすくするためにリファクタリングすることができ、コードをアプリケーションにより関連性の高い関数に抽象化する必要がありますが、このコードの目的は、条件付きロジック、オプション、およびトランジェント。

これはプラグインではどのように機能しますか?

上記のことを念頭に置いて、プラグインのパフォーマンスを向上させるためにトランジェントを使用する方法の問題を再検討してみましょう。


前に述べたように:

利用可能な API を理解した後、この記事の後半でこのトピックを再検討し、API がキャッシュ プラグインのパフォーマンスをどのように向上させることができるかを理解します。

そうは言っても、キャッシュと WordPress データベースはデータベース内のデータの
場所

に関係しています。

块引用>一時データは他のデータとは異なる場所に保存されるため、プラグイン (memcached に基づくプラグインなど) は、一時データが保存されているデータを検索し、その場所からメモリにデータをロードします。

したがって、データが要求されると、データはメモリから取得されます。データが存在しない場合は、データベースから取得されます。

最も重要なことは、正しくプログラムされていれば、キャッシュからのデータの読み取りやデータベースからのデータの取得に失敗したときに、そのデータがキャッシュに戻されて、次回取得されたときにもキャッシュに挿入されることです。 。メモリ内で利用可能です。

最後に、一時的な情報について注意すべき重要な点は、有効期限があるということです。これは、データがデータベースのその領域に特定の期間のみ保存されることを意味します。

このためには、これを考慮する必要があります。これは、トランジェントを取得したいときは常に、トランジェントが存在することを確認する必要があることを意味します。そうでない場合は、それらをその場所から取り出し、正しい場所に保管します。

カスタムクエリ

これまで、Web アプリケーション開発の基本に関連する WordPress が提供する機能の多くを紹介してきました。


しかし、最後にカバーすべき主要なコンポーネントが 1 つあります。それは、カスタム クエリの処理方法です。

もちろん、

WP_Query

WP_User_Query

など、WordPress の特定の目的のために設計されたクエリの実行に関連する優れた API がいくつかあります。定義された WordPress オブジェクトや適切なデータ クレンジングを可能にするメソッドを使用して、データベースに対してカスタム クエリを作成できるネイティブ ツールの一部について説明します。

ただし、これらすべてとその他のことについては、次の記事で説明します。

以上がWordPress Web アプリケーション開発ガイド: 利用可能な機能の詳細な説明 (パート 7): キャッシュ テクノロジの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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