OUJOOD.COM
Introduction : Pourquoi Optimiser les Performances ?
Optimiser les performances, c’est comme alléger votre valise pour voyager plus vite. Une application rapide rend les utilisateurs heureux et consomme moins de bande passante. Avec ExpressJS, on peut compresser les fichiers envoyés et dire au navigateur de "se souvenir" de certaines choses, comme un aide-mémoire, pour ne pas tout recharger à chaque fois.
Étape 1 : Préparer Votre Environnement
Avant de coder, préparons tout ce qu’il faut. Si vous avez suivi les tutoriels précédents, vous avez déjà Node.js et ExpressJS. Voici les étapes :
- Vérifiez Node.js : Ouvrez un terminal et tapez
node -v. Si une version apparaît (ex. : v16.13.0), c’est bon. Sinon, téléchargez Node.js sur nodejs.org. - Créez un dossier projet : Faites un dossier nommé "optimisation-performance" sur votre ordinateur. Ouvrez-le dans un éditeur comme Visual Studio Code.
- Initialisez le projet : Dans le terminal, allez dans ce dossier avec
cd chemin/vers/optimisation-performance, puis tapeznpm init -y. Cela crée un fichierpackage.json. - Installez ExpressJS et compression : Tapez
npm install express compression.compressionréduit la taille des réponses.
Étape 2 : Créer une Application Optimisée
Construisons une application avec une page simple et ajoutons des optimisations pour la rendre plus rapide.
Exemple de Code : Application Optimisée
Créez un fichier nommé app.js dans votre dossier "optimisation-performance" et ajoutez ce code :
var express = require('express');
var compression = require('compression');
var app = express();
// Activer la compression pour toutes les réponses
app.use(compression());
// Servir des fichiers statiques (pour tester la mise en cache)
app.use(express.static('public', {
maxAge: '1d' // Cache les fichiers pendant 1 jour
}));
// Route principale avec texte répétitif
app.get('/', function(req, res) {
var message = 'Bienvenue sur mon site optimisé ! '.repeat(100); // Texte long pour voir la compression
res.send(message);
});
app.listen(3000, function() {
console.log('Serveur démarré sur http://localhost:3000');
});
Créer un Fichier Statique
Créez un dossier nommé public dans "optimisation-performance". À l’intérieur, ajoutez un fichier style.css avec ce contenu :
body {
background-color: lightblue;
}
Explication Détaillée du Code
Voici chaque partie expliquée très simplement :
- var compression = require('compression'); : On importe le module pour compresser les réponses.
- app.use(compression()); : Compresse tout ce qu’on envoie (comme zipper un fichier avant de l’envoyer).
- app.use(express.static('public', { maxAge: '1d' })); : Sert les fichiers statiques (comme
style.css) et dit au navigateur de les garder 1 jour en mémoire (cache). - app.get('/', ...); : Route principale.
'Bienvenue...'.repeat(100): Crée un texte long pour tester la compression.
Étape 3 : Tester l’Application
Démarrez le serveur avec node app.js dans le terminal, puis testez :
- http://localhost:3000 : Vous verrez "Bienvenue sur mon site optimisé !" répété 100 fois. Ouvre les outils de développement (F12), onglet "Network" : l’en-tête "Content-Encoding: gzip" montre que c’est compressé.
- http://localhost:3000/style.css : Charge le CSS. Regarde l’en-tête "Cache-Control: max-age=86400" (1 jour en secondes).
- Rafraîchis plusieurs fois : La 2e fois, le CSS vient du cache (plus rapide, pas de nouvelle requête).
Compare avec et sans compression (supprime la ligne app.use(compression())) : la page sera plus lente et plus lourde sans compression.
Autres Astuces d’Optimisation
- Minifiez vos fichiers : Réduisez la taille de vos CSS/JS (outils comme UglifyJS).
- Utilisez un CDN : Pour les fichiers statiques lourds (pas couvert ici).
- Limitez les requêtes : Combine plusieurs fichiers en un seul si possible.
Conclusion
Félicitations ! Vous savez maintenant optimiser les performances avec ExpressJS grâce à la compression et la mise en cache. Votre application est plus rapide et légère. Pour aller plus loin, explorez notre prochain tutoriel sur WebSockets avec ExpressJS ou consultez la documentation compression.