Révision des connaissances : cinq points clés dans le mécanisme de mise en cache JS, des exemples de code spécifiques sont requis
Introduction : Dans le développement front-end, la mise en cache est un élément important de l'amélioration des performances des pages Web. Le mécanisme de mise en cache JavaScript fait référence à la sauvegarde locale des ressources acquises afin que le cache puisse être directement utilisé lors des accès ultérieurs, réduisant ainsi le temps de chargement des ressources et la consommation de bande passante du réseau. Cet article présentera les points clés du mécanisme de mise en cache JS et fournira des exemples de code spécifiques.
1. Type de cache
- Cache fort
Le cache fort fait référence au mécanisme de mise en cache implémenté en définissant le champ Expires ou Cache-Control dans l'en-tête de réponse HTTP. Lorsque le navigateur demande une ressource, il vérifiera d'abord si la ressource existe dans un cache local. Si elle existe et est toujours dans la période de validité, le cache sera utilisé directement sans envoyer de requête.
Exemple de code :
// 设置缓存时间为1个小时 res.setHeader('Cache-Control', 'max-age=3600');
- Mise en cache négociée
La mise en cache négociée est un mécanisme de mise en cache qui communique avec le serveur en définissant le champ If-Modified-Since ou If-None-Match dans l'en-tête de la requête HTTP. Lorsque le navigateur demande une ressource, il envoie d'abord la demande au serveur. Le serveur compare les champs de l'en-tête de la demande avec l'heure de la dernière modification de la ressource. Si la ressource n'a pas changé, il renvoie le code d'état 304 Non modifié et. indique au navigateur d'utiliser le cache local.
Exemple de code :
// 获取请求头中的If-Modified-Since字段 const ifModifiedSince = req.headers['if-modified-since']; // 获取资源的最后修改时间 const lastModified = fs.statSync(filepath).mtime.toUTCString(); // 比较请求头中的字段与最后修改时间 if (ifModifiedSince === lastModified) { res.statusCode = 304; // Not Modified res.end(); } else { res.setHeader('Last-Modified', lastModified); // 返回资源 res.end(file); }
2. Emplacement du cache
- Cache du navigateur
Le cache du navigateur fait référence aux fichiers de cache mis en cache localement dans le navigateur. Lorsque le navigateur accède à la même ressource, il vérifiera d'abord s'il existe un fichier cache pour la ressource. S'il existe, le cache sera utilisé directement. Sinon, une requête réseau sera envoyée.
Exemple de code :
// 读取缓存 const cache = localStorage.getItem('cache'); // 判断缓存是否存在 if (cache) { // 使用缓存 } else { // 发送网络请求 }
- Cache du serveur
Le cache du serveur fait référence aux fichiers de cache mis en cache côté serveur. Lorsque le navigateur demande une ressource, le serveur vérifie si un fichier cache existe pour la ressource et, si tel est le cas, renvoie directement le fichier cache.
Exemple de code :
// 判断文件是否存在 if (fs.existsSync(filepath)) { // 返回缓存文件 } else { // 发送网络请求 }
3. Contrôle du temps de cache
- Durée du cache
La durée du cache fait référence à la période de validité du cache fort ou du cache négocié, et différentes durées de cache peuvent être définies en fonction des besoins.
Exemple de code :
// 设置缓存时间为1个小时 res.setHeader('Cache-Control', 'max-age=3600');
- Stratégie de cache
La stratégie de cache fait référence à la définition de différentes stratégies de cache en fonction du type de ressource ou du chemin de ressource. Différentes stratégies de mise en cache peuvent être mises en œuvre à l'aide d'expressions régulières ou de correspondance de chaînes.
Exemple de code :
// 设置图片资源的缓存时间为1个月 if (req.url.match(/.jpg|.png|.gif$/)) { res.setHeader('Cache-Control', 'max-age=2592000'); }
4. Mise à jour du cache
- Contrôle de version
Le contrôle de version signifie ajouter un numéro de version lors de la demande de ressources et mettre à jour le numéro de version lorsque la ressource change. Vous pouvez forcer le navigateur à recharger la ressource en mettant à jour le numéro de version.
Exemple de code :
<!-- 添加版本号 --> <link rel="stylesheet" href="styles.css?v=1.0"> <script src="script.js?v=1.0"></script>
- Forcer l'actualisation
L'actualisation forcée fait référence au fait d'indiquer au navigateur de mettre à jour le cache immédiatement en définissant l'âge maximum du champ Cache-Control sur 0.
Exemple de code :
// 强制刷新缓存 res.setHeader('Cache-Control', 'max-age=0');
5. Vidage du cache
La suppression du cache fait référence à la suppression manuelle des fichiers de cache locaux du navigateur ou des fichiers de cache côté serveur.
Exemple de code :
// 清除浏览器缓存 localStorage.removeItem('cache'); // 清除服务器缓存 fs.unlinkSync(filepath);
Résumé : Pour les mécanismes de mise en cache JS courants dans le développement front-end, nous avons introduit cinq points clés, notamment le type de cache, l'emplacement du cache, le contrôle du temps de cache, la mise à jour du cache et la suppression du cache. La maîtrise de ces points clés peut nous aider à mieux comprendre et appliquer le mécanisme de mise en cache, à améliorer les performances des pages Web et à améliorer l'expérience utilisateur. J'espère que l'introduction de cet article pourra être utile à tous les lecteurs.
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!

如何使用JS和百度地图实现地图平移功能百度地图是一款广泛使用的地图服务平台,在Web开发中经常用于展示地理信息、定位等功能。本文将介绍如何使用JS和百度地图API实现地图平移功能,并提供具体的代码示例。一、准备工作使用百度地图API前,首先需要在百度地图开放平台(http://lbsyun.baidu.com/)上申请一个开发者账号,并创建一个应用。创建完成

如何使用JS和百度地图实现地图热力图功能简介:随着互联网和移动设备的迅速发展,地图成为了一种普遍的应用场景。而热力图作为一种可视化的展示方式,能够帮助我们更直观地了解数据的分布情况。本文将介绍如何使用JS和百度地图API来实现地图热力图的功能,并提供具体的代码示例。准备工作:在开始之前,你需要准备以下事项:一个百度开发者账号,并创建一个应用,获取到相应的AP

js字符串转数组的方法:1、使用“split()”方法,可以根据指定的分隔符将字符串分割成数组元素;2、使用“Array.from()”方法,可以将可迭代对象或类数组对象转换成真正的数组;3、使用for循环遍历,将每个字符依次添加到数组中;4、使用“Array.split()”方法,通过调用“Array.prototype.forEach()”将一个字符串拆分成数组的快捷方式。

如何使用JS和百度地图实现地图多边形绘制功能在现代网页开发中,地图应用已经成为常见的功能之一。而地图上绘制多边形,可以帮助我们将特定区域进行标记,方便用户进行查看和分析。本文将介绍如何使用JS和百度地图API实现地图多边形绘制功能,并提供具体的代码示例。首先,我们需要引入百度地图API。可以利用以下代码在HTML文件中导入百度地图API的JavaScript

js中new操作符做了:1、创建一个空对象,这个新对象将成为函数的实例;2、将新对象的原型链接到构造函数的原型对象,这样新对象就可以访问构造函数原型对象中定义的属性和方法;3、将构造函数的作用域赋给新对象,这样新对象就可以通过this关键字来引用构造函数中的属性和方法;4、执行构造函数中的代码,构造函数中的代码将用于初始化新对象的属性和方法;5、如果构造函数中没有返回等等。

这篇文章主要为大家详细介绍了js实现打字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

php在特定情况下可以读js内部的数组。其方法是:1、在JavaScript中,创建一个包含需要传递给PHP的数组的变量;2、使用Ajax技术将该数组发送给PHP脚本。可以使用原生的JavaScript代码或者使用基于Ajax的JavaScript库如jQuery等;3、在PHP脚本中,接收传递过来的数组数据,并进行相应的处理即可。

js全称JavaScript,是一种具有函数优先的轻量级,直译式、解释型或即时编译型的高级编程语言,是一种属于网络的高级脚本语言;JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式,如函数式编程。


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

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

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),