Maison interface Web Voir.js Une brève analyse du problème de la mise en cache des entrées dans Vue (partage de code)

Une brève analyse du problème de la mise en cache des entrées dans Vue (partage de code)

Aug 24, 2021 am 11:56 AM
vue.js

Dans l'article précédent "Le mécanisme de mise en cache HTTP que vous méritez de connaître (explication détaillée du code)", nous avons découvert le mécanisme de mise en cache HTTP. L'article suivant vous aidera à comprendre le problème de la mise en cache des entrées dans Vue. Venez y jeter un œil.

Une brève analyse du problème de la mise en cache des entrées dans Vue (partage de code)

Concernant la stratégie de mise en cache du web, je vous recommande cet article : web的缓存策略,推荐这篇文章:Http缓存机制

在开发时候经常遇到一个问题,我们根据版本号去控制缓存问题,当我们发布新版本,使用心得版本号的时候,发现html里面引用的版本号却是旧的版本号 ,原来是该html文件被缓存了,很多时候我们设置禁止html文件被缓存,但依然会出现被缓存的情况。

<meta http-equiv="Expires" content="0" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-control" content="no-cache" />
<meta http-equiv="Cache" content="no-cache" />
Copier après la connexion

为什么我们有时候设置了<meta http-equiv=”Cache-control”content=”no-store”>这种强制性禁止缓存,我们的页面依然被缓存了?

因为我们只关注了客户端,却忽略了服务器端的设置,如果服务器端nginx设置了Cache-control,他是会覆盖掉我们页面中设置的的Cache-control的,所以有时候我们会发现明明cssjs已经加了版本号,但是html文件里面引用的依然是旧的cssjs文件

一旦我们使用了全量更新,也就是每次发版本之前会干掉之前的jscss文件,那么index.html会无法加载之前的jscss还有一些其他的静态资源文件,而新的jscss则不会被加载, 那么白屏就诞生了。

因为服务器的缓存机制,旧的cssjs并不会被立即删除,这种情况下, 需要配合服务器来设置缓存,以nginx为例

location / {
    root /home/www/test/dist;
    index index.html;
    try_files $uri $uri/ /index.html;
    add_header Last-Modified $date_gmt;
    add_header Cache-Control &#39;no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0&#39;;
    if_modified_since off;
    expires off;
    etag off;
}
Copier après la connexion

no-cache,no-store可以只设置一个

no-cache浏览器会缓存,但刷新页面或者重新打开时会请求服务器,服务器可以响应304,如果文件有改动就会响应200

no-storeMécanisme de mise en cache HTTP

Nous rencontrons souvent un problème lors du développement Nous contrôlons le problème de mise en cache en fonction du numéro de version. . Lorsque nous avons publié une nouvelle version et utilisé le numéro de version, nous avons constaté que le numéro de version cité dans html était un ancien numéro de version. Il s'est avéré que le fichier html était mis en cache à plusieurs reprises. jusqu'à interdire Le fichier html est mis en cache, mais il le sera toujours. rrreee

Pourquoi définissons-nous parfois <meta http-equiv=”Cache-control” content=”no-store”> pour forcer la mise en cache, mais nos pages sont toujours en cache déjà ? 🎜🎜Parce que nous nous sommes concentrés uniquement sur le client, mais avons ignoré les paramètres côté serveur. Si le nginx côté serveur définit Cache-control, il écrasera le Cache-control défini dans notre page. . control, donc parfois nous constaterons que css et js ont des numéros de version ajoutés, mais l'ancien est toujours référencé dans le fichier html. Fichiers et js 🎜🎜Une fois que nous aurons utilisé la mise à jour complète, c'est-à-dire que les js et css précédents seront supprimés avant que chaque version ne soit publié. code>, alors <code>index.html ne pourra pas charger les fichiers js, css précédents et certains autres fichiers de ressources statiques, et les nouveaux js et css ne seront pas chargés et un écran blanc apparaîtra. 🎜🎜En raison du mécanisme de mise en cache du serveur, les anciens css et js ne seront pas supprimés immédiatement. Dans ce cas, vous devez coopérer avec le serveur pour configurer le cache. à nginx à titre d'exemple🎜rrreee🎜no-cache,no-storeVous ne pouvez en définir qu'un seul🎜🎜no-cacheLe navigateur mettra en cache , mais actualisez la page ou redémarrez A l'ouverture, le serveur sera demandé. Le serveur peut répondre 304 Si le fichier est modifié, il répondra 200🎜🎜no-store</code.> Le navigateur ne met pas en cache L'actualisation de la page nécessite de retélécharger la page🎜🎜Apprentissage recommandé : 🎜Tutoriel vue.js🎜🎜

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Discussion approfondie sur la façon dont vite analyse les fichiers .env Discussion approfondie sur la façon dont vite analyse les fichiers .env Jan 24, 2023 am 05:30 AM

Lorsque nous utilisons le framework Vue pour développer des projets front-end, nous déploierons plusieurs environnements lors du déploiement. Souvent, les noms de domaine d'interface appelés par les environnements de développement, de test et en ligne sont différents. Comment peut-on faire la distinction ? Cela utilise des variables et des modèles d'environnement.

Explication graphique détaillée de la façon d'intégrer l'éditeur de code Ace dans un projet Vue Explication graphique détaillée de la façon d'intégrer l'éditeur de code Ace dans un projet Vue Apr 24, 2023 am 10:52 AM

Ace est un éditeur de code intégrable écrit en JavaScript. Il correspond aux fonctionnalités et aux performances des éditeurs natifs comme Sublime, Vim et TextMate. Il peut être facilement intégré à n’importe quelle page Web et application JavaScript. Ace est maintenu en tant qu'éditeur principal de l'IDE Cloud9 et est le successeur du projet Mozilla Skywriter (Bespin).

Quelle est la différence entre la composantisation et la modularisation dans Vue Quelle est la différence entre la composantisation et la modularisation dans Vue Dec 15, 2022 pm 12:54 PM

La différence entre la modularisation et la modularisation : la modularisation est divisée du point de vue de la logique du code ; elle facilite le développement en couches de code et garantit la cohérence des fonctions de chaque module fonctionnel. La composantisation est planifiée du point de vue de l'interface utilisateur ; la composantisation du frontal facilite la réutilisation des composants de l'interface utilisateur.

Découvrez comment écrire des tests unitaires dans Vue3 Découvrez comment écrire des tests unitaires dans Vue3 Apr 25, 2023 pm 07:41 PM

Vue.js est devenu aujourd'hui un framework très populaire dans le développement front-end. À mesure que Vue.js continue d'évoluer, les tests unitaires deviennent de plus en plus importants. Aujourd'hui, nous allons explorer comment écrire des tests unitaires dans Vue.js 3 et fournir quelques bonnes pratiques ainsi que des problèmes et solutions courants.

Parlons en profondeur de reactive() dans vue3 Parlons en profondeur de reactive() dans vue3 Jan 06, 2023 pm 09:21 PM

Avant-propos : Dans le développement de vue3, réactif fournit une méthode pour implémenter des données réactives. Il s'agit d'une API fréquemment utilisée dans le développement quotidien. Dans cet article, l’auteur explorera son mécanisme de fonctionnement interne.

Une comparaison simple de la syntaxe JSX et de la syntaxe des modèles dans Vue (analyse des avantages et des inconvénients) Une comparaison simple de la syntaxe JSX et de la syntaxe des modèles dans Vue (analyse des avantages et des inconvénients) Mar 23, 2023 pm 07:53 PM

Dans Vue.js, les développeurs peuvent utiliser deux syntaxes différentes pour créer des interfaces utilisateur : la syntaxe JSX et la syntaxe des modèles. Les deux syntaxes ont leurs propres avantages et inconvénients. Discutons de leurs différences, avantages et inconvénients.

Une brève analyse de la façon de gérer les exceptions dans les composants dynamiques Vue3 Une brève analyse de la façon de gérer les exceptions dans les composants dynamiques Vue3 Dec 02, 2022 pm 09:11 PM

Comment gérer les exceptions dans les composants dynamiques Vue3 ? L'article suivant parlera des méthodes de gestion des exceptions des composants dynamiques Vue3. J'espère qu'il sera utile à tout le monde !

Comment interroger la version actuelle de vue Comment interroger la version actuelle de vue Dec 19, 2022 pm 04:55 PM

Il existe deux façons d'interroger la version actuelle de Vue : 1. Dans la console cmd, exécutez la commande « npm list vue » pour interroger la version. Le résultat de sortie est les informations sur le numéro de version de Vue 2. Recherchez et ouvrez le package. json dans le projet et recherchez. Vous pouvez voir les informations de version de vue dans l'élément "dépendances".

See all articles