Maison  >  Article  >  développement back-end  >  Middleware du framework Yii : utilisez la mise en cache et le CDN pour accélérer le chargement des pages Web

Middleware du framework Yii : utilisez la mise en cache et le CDN pour accélérer le chargement des pages Web

WBOY
WBOYoriginal
2023-07-29 18:21:111363parcourir

Middleware du framework Yii : utilisez la mise en cache et le CDN pour accélérer la vitesse de chargement des pages Web

Dans le développement Web, la vitesse de chargement de la page affecte directement l'expérience utilisateur et les performances du site Web. Afin d'améliorer la vitesse de chargement des pages Web, nous pouvons utiliser la mise en cache et le CDN (content delivery network) pour accélérer la transmission et l'affichage de la page. Le framework Yii fournit une multitude de fonctions pour prendre en charge l'utilisation de la mise en cache et du CDN. Cet article explique comment accélérer la vitesse de chargement des pages Web via le middleware du framework Yii.

1. Utilisez la fonction de mise en cache du framework Yii

Le framework Yii fournit une prise en charge riche de la mise en cache, notamment la mise en cache des fragments de page, la mise en cache des données, la mise en cache HTTP, etc. Nous pouvons utiliser ces mécanismes de mise en cache via des fichiers de configuration ou du code.

1.1 Mise en cache des fragments de page

La mise en cache des fragments de page peut mettre en cache le contenu d'une certaine partie de la page, réduisant ainsi la requête de base de données et le processus de rendu, améliorant ainsi la vitesse de chargement des pages. Dans le framework Yii, nous pouvons utiliser des widgets pour implémenter la mise en cache des fragments de page.

Ce qui suit est un exemple, en supposant que nous avons une liste de commentaires dans notre page, nous pouvons utiliser le widget pour mettre en cache le contenu de la partie liste de commentaires :

use yiiwidgetsFragmentCache;

echo FragmentCache::widget([
    'id' => 'comment-list',
    'duration' => 3600,
    'dependency' => [
        'class' => 'yiicachingDbDependency',
        'sql' => 'SELECT COUNT(*) FROM comment',
    ],
    'content' => function () {
        // 渲染评论列表的代码
    },
]);

Dans le code ci-dessus, nous définissons un cache avec l'identifiant " comment-list" Fragment, le temps de cache est de 3600 secondes. Nous utilisons également une dépendance de base de données qui invalide automatiquement le cache lorsque le nombre de commentaires change. De cette façon, le contenu de la liste des commentaires ne sera régénéré qu'à l'expiration du cache, améliorant ainsi la vitesse de chargement des pages.

1.2 Mise en cache des données

La mise en cache des données consiste à mettre en cache les résultats de requête ou les résultats de calcul dans la mémoire ou sur un autre support de stockage afin que les données mises en cache puissent être utilisées directement lors de la requête suivante, évitant ainsi des opérations de requête ou de calcul répétées.

Dans le framework Yii, nous pouvons utiliser des composants de cache pour implémenter la mise en cache des données. Voici un exemple d'utilisation d'un composant de cache pour mettre en cache les résultats d'une requête :

// 获取缓存组件
$cache = Yii::$app->cache;

// 查看缓存是否存在
$key = 'user_list';
$data = $cache->get($key);
if ($data === false) {
    // 如果缓存不存在,则查询数据库并缓存查询结果
    $data = User::find()->all();
    $cache->set($key, $data, 3600);
}

// 使用缓存数据
foreach ($data as $user) {
    // 显示用户信息
}

Dans le code ci-dessus, nous utilisons le composant de cache intégré Yii::$app->cache du framework Yii pour les opérations de mise en cache. Nous essayons d'abord d'extraire les données du cache. Si l'acquisition échoue, nous effectuons une requête dans la base de données et mettons en cache les résultats de la requête. De cette façon, lors de la requête suivante, nous pouvons utiliser directement les données mises en cache, évitant ainsi les requêtes répétées de la base de données, améliorant ainsi la vitesse de chargement des pages.

2. Utilisez CDN pour accélérer la vitesse de chargement des pages Web

Lors de la transmission de pages Web, nous pouvons utiliser CDN pour accélérer la vitesse de chargement de la page. CDN (Content Delivery Network) met en cache les ressources statiques des pages Web (telles que les images, les feuilles de style, les scripts, etc.) sur des serveurs plus proches des utilisateurs, réduisant ainsi la distance de transmission et améliorant la vitesse de chargement des pages.

Dans le framework Yii, nous pouvons utiliser CDN pour accélérer les demandes de ressources statiques. Voici un exemple d'utilisation d'un CDN pour charger des images :

use yiihelpersHtml;

// 使用CDN来加载图像
echo Html::img('http://cdn.example.com/images/logo.png');

Dans le code ci-dessus, nous utilisons la classe d'assistance HTML fournie par le framework Yii pour générer des balises d'image et spécifier l'adresse du CDN. De cette façon, lors du chargement de la page, les images seront chargées depuis le serveur CDN, améliorant ainsi la vitesse de chargement de la page.

En plus du chargement des ressources statiques, nous pouvons également accélérer le stockage des ressources statiques via CDN. Dans le framework Yii, nous pouvons utiliser des services de stockage cloud (tels que Qiniu Cloud, Alibaba Cloud, etc.) pour stocker et distribuer des ressources statiques. Voici un exemple d'utilisation de Qiniu Cloud Storage pour stocker et distribuer des images :

use yiihelpersHtml;

// 使用七牛云存储来加载图像
echo Html::img('http://cdn.example.com/images/logo.png', ['style' => 'width: 200px; height: 100px;']);

Dans le code ci-dessus, nous utilisons également la classe d'assistance HTML fournie par le framework Yii pour générer des balises d'image et spécifier l'adresse de Qiniu Cloud Storage et de l'image. styles. De cette façon, lorsque la page est chargée, l'image sera chargée à partir du serveur de stockage cloud Qiniu, améliorant ainsi encore la vitesse de chargement de la page.

En résumé, en utilisant le middleware du framework Yii pour implémenter des mécanismes de mise en cache et d'accélération CDN, nous pouvons considérablement augmenter la vitesse de chargement des pages Web, améliorer l'expérience utilisateur et les performances du site Web. J'espère que cet article pourra vous aider à accélérer la vitesse des pages lors du développement d'applications Web à l'aide du framework Yii.

Références :

  • Documentation Yii : https://www.yiiframework.com/doc/guide/2.0/zh-cn/caching-overview
  • Wiki CDN : https://en.wikipedia.org/wiki / Content_delivery_network

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn