ホームページ >ウェブフロントエンド >CSSチュートリアル >WordPress Multi-Multisite:ケーススタディ
チャレンジ: WordPress管理ダッシュボードの構築25のマルチサイトインスタンスに広がる約900のブログからGoogleアナリティクスデータを効率的に表示します。 重要なのは、このような大きなデータセットの処理に固有のパフォーマンスのハードルを克服することでした。
この記事は、開発プロセスの詳細を説明し、遭遇した重要な決定と課題を強調しています。 WordPress REST API、PHP対JavaScriptの議論、生産環境の制限、セキュリティ上の考慮事項、データベース設計、さらにはAIの役割を調べます。キー用語
WordPress REST API:Foundation
最初に、PHPベースのアプローチが考慮されました。ただし、同期PHP処理とサーバー側の実行時間制限により、これは実用的ではありませんでした。 JavaScriptの非同期機能は優れたソリューションを提供し、すべてのサイトから同時データ取得を可能にします。
JavaScriptの実装により、データの検索時間が大幅に短縮されました。推定925秒(同期)から約2秒(非同期)。 ただし、ブラウザとサーバーのリクエスト制限では、リクエスト間の150ミリ秒の遅延が必要でした。 コードスニペット:非同期データの取得
<?php [...] function register(\WP_REST_Server $server) { $endpoints = $this->get(); foreach ($endpoints as $endpoint_slug => $endpoint) { register_rest_route( $endpoint['namespace'], $endpoint['route'], $endpoint['args'] ); } } // ... (rest of the endpoint definitions) ...
PHPエンドポイントとjavaScriptコードは、wp_localize_script()
を使用して統合され、エンドポイントURLおよびその他の必要なデータをJavaScriptにシームレスに渡しました。
コードスニペット:CORSヘッダーの実装
<?php [...] function register(\WP_REST_Server $server) { $endpoints = $this->get(); foreach ($endpoints as $endpoint_slug => $endpoint) { register_rest_route( $endpoint['namespace'], $endpoint['route'], $endpoint['args'] ); } } // ... (rest of the endpoint definitions) ...
データベースキャッシュ
async function getBlogsDetails(blogs) { let promises = []; blogs.forEach((blog, index) => { // ... (code for delayed fetch requests) ... }); // ... (code for Promise.all and error handling) ... }
結果と将来の考慮事項
MVPは機能的であり、ブログのトラフィックパターンに関する貴重な洞察を提供します。 将来の改善には、最新のJavaScriptフレームワークの使用や、AWS Lambdaなどのサーバーレスソリューションの探索が含まれ、スケーラビリティとパフォーマンスが向上することが含まれます。 先制的なデータ編集のためにCRONジョブを使用することも潜在的な強化です。以上がWordPress Multi-Multisite:ケーススタディの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。