Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menyediakan cache imej dalam nodejs

Bagaimana untuk menyediakan cache imej dalam nodejs

PHPz
PHPzasal
2023-04-17 15:29:26787semak imbas

Dalam tapak web moden, imej memainkan peranan penting. Selain menyenangkan dari segi estetika, mereka juga boleh mengoptimumkan kelajuan dan prestasi tapak web anda. Walau bagaimanapun, memuat turun semula imej setiap kali pengguna melawat tapak anda boleh membawa kepada masa pemuatan yang perlahan. Inilah yang dilakukan oleh cache imej. Dalam artikel ini, kami akan meneroka cara menyediakan caching imej untuk mengoptimumkan tapak web Node.js anda.

Apakah caching imej?

Caching imej merujuk kepada menyimpan imej yang dimuat turun dalam storan setempat untuk mengelakkan memuat turun semula imej yang sama setiap kali pengguna melawati tapak web. Dengan mengurangkan bilangan kali anda perlu memuat turun semula imej, anda boleh meningkatkan kelajuan pemuatan tapak web anda. Apabila pengguna melawat halaman itu sekali lagi, penyemak imbas akan terlebih dahulu menyemak sama ada imej yang sama sudah wujud dalam storan setempat. Jika ada, imej dimuatkan terus daripada storan tempatan dan bukannya dimuat turun semula daripada pelayan.

Sediakan cache imej

Untuk menyediakan cache imej, kita perlu menggunakan pengepala HTTP untuk memberitahu penyemak imbas apabila imej baharu perlu dimuatkan dan apabila imej yang sudah dicache harus dimuatkan. Ini boleh dicapai menggunakan pengepala Cache-Control dan Expires.

Pengepala Cache-Control ialah pilihan yang paling banyak digunakan dan membolehkan anda menentukan gelagat caching setiap sumber. Dengan menetapkan Kawalan Cache dalam pengepala respons, anda boleh memberitahu penyemak imbas berapa lama untuk cache sumber, atau memberitahu penyemak imbas dalam keadaan apa sumber itu harus dicache.

// Contoh kod: Biarkan penyemak imbas menyimpan fail sumber statik selama setahun
app.use(express.static('public', { maxAge: '1y' }))

Kod ini memberitahu pelayar untuk cache fail sumber statik selama satu tahun. Dengan cara ini, apabila pengguna melawat tapak web buat kali pertama, semua fail sumber statik akan dicache dan kemudian tidak perlu dimuat turun semula pada tahun berikutnya.

Cara lain untuk menyediakan caching imej ialah menggunakan pengepala Tamat Tempoh. Anda boleh menggunakan Tamat Tempoh untuk memberitahu penyemak imbas apabila ia akan tamat tempoh dan memuat turun semula sumber. Tamat tempoh ialah kaedah yang digunakan dalam HTTP 1.0 yang memberitahu penyemak imbas apabila ia harus memperoleh semula sumber.

//Kod contoh: Tetapkan masa cache imej kepada satu tahun
app.get('/images/:name', function(req, res, next) {
res.setHeader( ' Tamat tempoh', New Date(Date.now() + 31536000000).toUTCString())
next();
})

Kod ini memberitahu penyemak imbas supaya cache imej ini selama satu tahun . Perlu diingat bahawa Tamat Tempoh ialah masa mutlak, jadi ia mempunyai isu zon waktu. Kita perlu menukar masa kepada masa UTC menggunakan kaedah toUTCString() untuk mengelakkan isu zon waktu.

Ringkasan

Dalam artikel ini, kami membincangkan cara menyediakan caching imej untuk meningkatkan prestasi aplikasi web Node.js anda. Kami menerangkan pengepala Cache-Control dan Expires dan memberikan contoh kod untuk membantu anda menyediakan gelagat caching imej. Dengan menggunakan teknologi ini, anda boleh mengurangkan masa memuatkan tapak web dengan ketara, mengurangkan penggunaan lebar jalur dan memberikan pengguna pengalaman yang lebih baik. Pada masa yang sama, kita juga perlu ingat bahawa cache mempunyai seumur hidup, jadi cache perlu dikosongkan pada masa yang sesuai untuk memastikan kesegaran kandungan.

Atas ialah kandungan terperinci Bagaimana untuk menyediakan cache imej dalam nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn