Maison interface Web tutoriel HTML Comment utiliser le cache du navigateur frontal

Comment utiliser le cache du navigateur frontal

Nov 27, 2017 am 10:05 AM
firefox webkit 浏览器

Je vous ai déjà présenté la mise en cache du navigateur, ainsi que la mise en cache HTML hors ligne. Il est facile de se tromper si j'en parle trop. Aujourd'hui, je vais vous expliquer la différence entre ces caches et comment utiliser le cache.

200 du cache mémoire n'accède pas au serveur, lit directement le cache et lit le cache de la mémoire. À ce moment-là, les données sont mises en cache en mémoire. Une fois le processus arrêté, c'est-à-dire après la fermeture du navigateur, les données n'existeront plus. Cependant, cette méthode ne peut mettre en cache que les ressources dérivées

200 du cache disque sans accéder au serveur, en lisant le cache directement et en lisant le cache à partir du disque. Lorsque le processus est arrêté, les données existent toujours. Cette méthode ne peut mettre en cache que les ressources dérivées

304 Non modifié. Accédez au serveur et constatez que les données n'ont pas été mises à jour. Le serveur renvoie ce code d'état. Lisez ensuite les données du cache.

Principe du cache à trois niveaux

Allez d'abord dans la mémoire, s'il y en a, chargez-la directement

S'il n'y a pas de mémoire, sélectionnez le disque dur pour obtenir il, s'il y en a, chargez-le directement

S'il n'y a pas de disque dur, alors faites une requête réseau

Mettez en cache les ressources chargées sur le disque dur et la mémoire

Parcourez généralement les images, comme suit :

Accès-> 200 -> Quitter le navigateur

Entrez à nouveau-> ; Actualiser-> 200 (à partir du cache mémoire)

cache d'application Il est un peu différent du cache ci-dessus, ce qui signifie que les ressources peuvent être lues à partir du disque dur sans être connectées au cache. Internet Même si Internet est déconnecté, les utilisateurs peuvent naviguer.

Définir le cache du navigateur

304 Est-il nécessaire de négocier le cache ou de communiquer une fois avec le serveur Si vous souhaitez couper la communication du serveur, vous devez forcer le navigateur à utiliser le cache local (cache ? -control/expires),

Généralement, il existe plusieurs façons de définir le cache du navigateur.

1. L'ensemble expire et contrôle le cache via HTTP META

<meta http-equiv="Cache-Control" content="max-age=7200" />
 <meta http-equiv="Expires" content="Sun Oct 15 2017 20:39:53 GMT+0800 (CST)" />
Copier après la connexion

Écrit de cette manière, il n'est valable que pour la page Web et n'est pas valide pour les images ou autres demandes dans le page web.

2. Images de configuration du serveur Apache, css, js, cache flash

Cette technologie est principalement implémentée via la configuration du serveur Si vous utilisez un serveur Apache, vous pouvez utiliser le module mod_expires pour implémenter :

Compilez le module mod_expires :

Cd  /root/httpd-2.2.3/modules/metadata/usr/local/apache/bin/apxs -i -a -c mod_expires.c //编译
Copier après la connexion

Ouvrez d'abord le fichier httpd.conf, puis recherchez le module expires. Après l'avoir trouvé, supprimez le signe # à gauche pour l'indiquer. ce module est activé et redémarrez le serveur apache

Modifiez la configuration httpd.conf : ajoutez le contenu suivant

<IfModule mod_expires.c>ExpiresActive on
ExpiresDefault "access plus 1 month"
ExpiresByType text/html "access plus 1 months"
ExpiresByType text/css "access plus 1 months"
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/jpeg "access plus 1 months"
ExpiresByType image/jpg "access plus 1 months"
ExpiresByType image/png "access plus 1 months"
EXpiresByType application/x-shockwave-flash "access plus 1 months"
EXpiresByType application/x-javascript      "access plus 1 months"
#ExpiresByType video/x-flv "access plus 1 months"</IfModule>
Copier après la connexion

3, php et autres paramètres

<?php
  header("Cache-Control: public");
  header("Pragma: cache");
  $offset = 30*60*60*24; // cache 1 month
  $ExpStr = "Expires: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT";
  header($ExpStr);?>
Copier après la connexion

ou

$seconds_to_cache = 3600;$ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT";header("Expires: $ts"); header("Pragma: cache");header("Cache-Control: max-age=$seconds_to_cache");
Copier après la connexion

état du cache Déploiement du code front-end

Question 1 : Avec le cache, comment mettre à jour le code front-end ?

Nous pouvons ajouter le numéro de version après le fichier de ressource ou l'image, comme indiqué ci-dessous.

Question 2 : Mais une fois que tous les fichiers ont des numéros de version ajoutés, nous n'avons modifié qu'un seul fichier. Le cache des autres fichiers n'est-il pas gaspillé ?

Pour résoudre ce problème, nous pouvons utiliser l'algorithme datasummary pour obtenir des informations récapitulatives sur le fichier, et les informations récapitulatives correspondent au contenu du fichier un à un. Comme indiqué ci-dessous :

Cela résout le problème.

Question 3 : Un nouveau problème est réapparu. Que dois-je faire lors de la publication de fichiers ?

1. Déployez d'abord la page, puis déployez les ressources : Pendant l'intervalle de temps entre les deux déploiements, si un utilisateur accède à la page, les anciennes ressources seront chargées dans la nouvelle structure de la page, et l'ancienne version sera La ressource est mise en cache comme une nouvelle version. Le résultat est que l'utilisateur accède à une page avec un style désordonné. À moins d'être actualisée manuellement, la page continuera à exécuter des erreurs jusqu'à l'expiration du cache de ressources.

2. Déployez d'abord les ressources, puis déployez les pages : dans l'intervalle de temps de déploiement, les utilisateurs disposant d'un cache local des ressources de l'ancienne version visitent le site Web. Étant donné que la page demandée est une ancienne version, la ressource fait référence. Aucun changement, le navigateur utilisera directement le cache local. Dans ce cas, la page s'affichera normalement mais si les utilisateurs sans cache local ou cache expiré visitent le site Web, la page de l'ancienne version chargera la ressource de la nouvelle version, ce qui entraîne dans l'erreur d'exécution de la page. Mais lorsque la page est déployée, ces utilisateurs reviendront à la normale lorsqu'ils visiteront à nouveau la page.

D'accord, ce que je veux dire à partir de l'analyse ci-dessus est : personne ne peut déployer en premier ! Cela entraînera une confusion des pages pendant le processus de déploiement. Par conséquent, pour les projets à faible trafic, les étudiants en R&D peuvent travailler dur et se connecter secrètement au milieu de la nuit. Téléchargez d'abord des ressources statiques, puis déployez la page. Il semblera qu'il y aura moins de problèmes.

Comment résoudre ces problèmes ?

Ce problème provient de la libération par superposition des ressources. Ce problème se produit lorsque les ressources à libérer sont utilisées pour couvrir des ressources publiées. Il est facile de le résoudre, c'est-à-dire d'implémenter une publication sans couverture

Il y a tellement d'aspects sur la mise en cache Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de PHP !


Lecture connexe :

Comment implémenter le code carrousel du graphique de mise au point numérique en HTML

HTML Comment gérer l'affichage incomplet de la dernière ligne de texte

Comment utiliser le canevas pour créer un effet d'animation de fontaine de particules

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Pourquoi les feuilles de style personnalisées peuvent-elles prendre effet sur les pages Web locales de Safari mais pas sur les pages Baidu? Pourquoi les feuilles de style personnalisées peuvent-elles prendre effet sur les pages Web locales de Safari mais pas sur les pages Baidu? Apr 05, 2025 pm 05:15 PM

Discussion sur l'utilisation de styles de style personnalisés dans Safari aujourd'hui, nous allons discuter d'une question sur l'application de feuilles de style personnalisées pour le navigateur Safari. Novice frontal ...

Comment personnaliser le symbole de redimensionnement via CSS et le rendre uniforme avec la couleur d'arrière-plan? Comment personnaliser le symbole de redimensionnement via CSS et le rendre uniforme avec la couleur d'arrière-plan? Apr 05, 2025 pm 02:30 PM

La méthode de personnalisation des symboles de redimension dans CSS est unifiée avec des couleurs d'arrière-plan. Dans le développement quotidien, nous rencontrons souvent des situations où nous devons personnaliser les détails de l'interface utilisateur, tels que l'ajustement ...

Comment afficher correctement le 'Jingnan Mai Round Body' installé localement sur la page Web? Comment afficher correctement le 'Jingnan Mai Round Body' installé localement sur la page Web? Apr 05, 2025 pm 10:33 PM

En utilisant récemment des fichiers de police installés localement dans les pages Web, j'ai téléchargé une police gratuite à partir d'Internet et je l'ai installée avec succès dans mon système. Maintenant...

Comment contrôler le haut et la fin des pages dans les paramètres d'impression du navigateur via JavaScript ou CSS? Comment contrôler le haut et la fin des pages dans les paramètres d'impression du navigateur via JavaScript ou CSS? Apr 05, 2025 pm 10:39 PM

Comment utiliser JavaScript ou CSS pour contrôler le haut et la fin de la page dans les paramètres d'impression du navigateur. Dans les paramètres d'impression du navigateur, il existe une option pour contrôler si l'écran est ...

Comment utiliser des fichiers de police installés localement sur les pages Web? Comment utiliser des fichiers de police installés localement sur les pages Web? Apr 05, 2025 pm 10:57 PM

Comment utiliser des fichiers de police installés localement sur les pages Web avez-vous rencontré cette situation dans le développement de pages Web: vous avez installé une police sur votre ordinateur ...

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Apr 05, 2025 pm 10:18 PM

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Pendant la programmation, les marges négatives dans CSS (négatif ...

Comment utiliser CSS et Flexbox pour implémenter la disposition réactive des images et du texte à différentes tailles d'écran? Comment utiliser CSS et Flexbox pour implémenter la disposition réactive des images et du texte à différentes tailles d'écran? Apr 05, 2025 pm 06:06 PM

Implémentation de dispositions réactives à l'aide de CSS lorsque nous voulons implémenter des modifications de mise en page sous différentes tailles d'écran dans la conception Web, CSS ...

Le texte sous la disposition Flex est omis mais le conteneur est ouvert? Comment le résoudre? Le texte sous la disposition Flex est omis mais le conteneur est ouvert? Comment le résoudre? Apr 05, 2025 pm 11:00 PM

Le problème de l'ouverture des conteneurs en raison d'une omission excessive du texte sous disposition flexible et de solutions est utilisé ...

See all articles