Caching ialah pengubah permainan untuk meningkatkan kelajuan dan responsif aplikasi web dan mudah alih. Dalam blog ini, kami akan meneroka strategi caching penting untuk aplikasi frontend, menangani pengendalian data yang besar dan menyelidiki selok-belok caching Backward/Forward (B/F).
Caching penyemak imbas memanfaatkan keupayaan penyemak imbas untuk menyimpan salinan aset web secara setempat, mengurangkan masa muat dan permintaan pelayan. Berikut adalah beberapa aspek penting:
Kawalan Cache: Pengepala HTTP ini menentukan dasar caching. Contohnya, Cache-Control: max-age=3600 memberitahu penyemak imbas untuk cache sumber selama 3600 saat.
Tamat tempoh: Pengepala ini menentukan tarikh/masa tamat tempoh yang tepat untuk sumber cache. Ia sering digunakan bersama-sama Cache-Control.
ETag: Pengepala ETag menyediakan pengecam unik untuk versi sumber. Apabila sumber berubah, ETagnya berubah, membolehkan pengesahan cache yang cekap.
Cache-Control: public, max-age=86400 Expires: Wed, 21 Oct 2024 07:28:00 GMT ETag: "33a64df5"
Service Workers ialah skrip yang dijalankan di latar belakang, menyediakan keupayaan caching lanjutan. Mereka boleh memintas permintaan rangkaian dan menyampaikan respons cache, malah membenarkan akses luar talian.
Cache First: Layan dari cache jika tersedia; jika tidak, ambil daripada rangkaian.
Rangkaian Pertama: Ambil daripada rangkaian dahulu; jika rangkaian tidak tersedia, layan daripada cache.
Stale-While-Revalidate: Layan dari cache dan pada masa yang sama ambil dan kemas kini cache di latar belakang.
self.addEventListener('fetch', event => { event.respondWith( caches.match(event.request).then(response => { return response || fetch(event.request); }) ); });
Storan Tempatan dan IndexedDB ialah penyelesaian storan berasaskan penyemak imbas untuk data berterusan di sisi pelanggan.
Storan Tempatan: Ideal untuk menyimpan sejumlah kecil data sebagai pasangan nilai kunci. Ia segerak dan mempunyai had storan kira-kira 5MB.
IndexedDB: Sesuai untuk menyimpan jumlah data berstruktur yang lebih besar. Ia menyokong urus niaga dan pertanyaan kompleks, menjadikannya ideal untuk data yang lebih besar dan kompleks.
localStorage.setItem('key', 'value'); let value = localStorage.getItem('key');
let request = indexedDB.open('database', 1); request.onupgradeneeded = event => { let db = event.target.result; db.createObjectStore('store', { keyPath: 'id' }); };
Pelayar sendiri mempunyai beberapa teknik caching, berikut adalah salah satu daripadanya.
Caching B/F merujuk kepada mekanisme di mana penyemak imbas menyimpan keadaan halaman web dalam sejarah penyemak imbas, membolehkan pengguna menavigasi ke sana ke mari tanpa memuatkan semula keseluruhan halaman.
Kebanyakan penyemak imbas mempunyainya, anda boleh meneroka ini dari tab periksa
Cache Halaman: Penyemak imbas menyimpan keadaan lengkap halaman, termasuk DOM, konteks JavaScript dan data dalam memori.
BFCache: Penyemak imbas moden (seperti Chrome dan Firefox) menggunakan BFCache untuk mengekalkan keadaan halaman dalam ingatan, yang membolehkan navigasi segera.
Navigasi Lebih Pantas: Halaman segera dimuatkan apabila menggunakan butang belakang dan hadapan penyemak imbas.
Pengalaman Pengguna yang Dipertingkat: Peralihan lancar meningkatkan keseluruhan pengalaman pengguna.
Muatan Pelayan Dikurangkan: Kurang permintaan kepada pelayan kerana keadaan halaman disimpan dan digunakan semula.
Melaksanakan strategi caching yang cekap boleh meningkatkan prestasi aplikasi web dan mudah alih secara mendadak. Daripada caching penyemak imbas dan pekerja perkhidmatan kepada menangani data yang besar dan menggunakan caching B/F, teknik ini memastikan apl anda pantas, responsif dan mesra pengguna. Mula memanfaatkan strategi ini hari ini untuk merevolusikan prestasi apl anda!
Semoga anda telah mempelajari sesuatu yang baharu daripada blog ini. Ikuti saya untuk blog teknologi yang pendek, tajam, mendalam dan unik. Terima kasih!
Atas ialah kandungan terperinci Tingkatkan Prestasi: Strategi Caching Penting untuk Web dan Mudah Alih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!