Tajuk: Mekanisme caching dan contoh kod fail HTML
Pengenalan: Semasa menulis halaman web, kita sering menghadapi masalah cache penyemak imbas. Artikel ini akan memperkenalkan mekanisme caching fail HTML secara terperinci dan menyediakan beberapa contoh kod khusus untuk membantu pembaca memahami dan menggunakan mekanisme ini dengan lebih baik.
1. Prinsip caching penyemak imbas
Dalam penyemak imbas, setiap kali halaman web diakses, penyemak imbas akan terlebih dahulu menyemak sama ada terdapat salinan halaman web dalam cache. Jika ada, kandungan halaman web diperoleh terus daripada cache Ini adalah prinsip asas caching pelayar. Kelebihan mekanisme caching pelayar ialah ia boleh meningkatkan kelajuan memuatkan halaman web, mengurangkan permintaan rangkaian dan menjimatkan lebar jalur.
2. Kaedah cache HTML
Caching fail HTML boleh dikawal dalam dua cara berikut:
Tamat tempoh dan Kawalan Cache
Dengan menambahkan medan Tamat Tempoh dan Kawalan Cache dalam pengepala respons HTTP, anda boleh mengawal pelayar Masa untuk cache fail. Kod sampel khusus adalah seperti berikut:
HTTP/1.1 200 OK Content-Type: text/html Cache-Control: max-age=3600 Expires: Wed, 04 Aug 2022 08:00:00 GMT
Dalam kod sampel di atas, medan Cache-Control menentukan masa cache maksimum 3600 saat, iaitu satu jam dan medan Tamat tempoh menentukan masa tamat tempoh cache pada 8:00 pada 4 Ogos 2022.
Last-Modified and If-Modified-Sejak
Nyatakan masa pengubahsuaian terakhir fail dengan menambahkan medan Last-Modified dalam pengepala respons HTTP. Selepas penyemak imbas menyimpan cache fail, ia akan menambah medan If-Modified-Since pada kali seterusnya ia meminta fail dan menghantar masa pengubahsuaian terakhir fail cache terakhir ke pelayan akan menentukan sama ada fail tersebut telah dikemas kini pada masa ini. Jika fail tidak dikemas kini, respons 304 Not Modified dikembalikan dan penyemak imbas terus menggunakan fail cache. Kod sampel khusus adalah seperti berikut:
HTTP/1.1 200 OK Content-Type: text/html Last-Modified: Mon, 01 Aug 2022 12:00:00 GMT
Dalam kod sampel di atas, medan Terakhir Diubah Suai menentukan masa pengubahsuaian terakhir fail sebagai 12:00 pada 1 Ogos 2022.
3. Strategi kawalan cache
Mengikut keperluan sebenar, kami boleh merangka strategi caching yang berbeza berdasarkan kandungan fail atau syarat lain untuk mengawal caching penyemak imbas dengan lebih baik.
Caching fail statik
Untuk fail statik yang tidak kerap berubah, anda boleh menetapkan masa cache yang lebih lama supaya penyemak imbas boleh cache fail secara berterusan dan mengurangkan permintaan kepada pelayan. Contohnya, untuk fail statik seperti CSS, JavaScript dan imej, anda boleh menetapkan masa cache kepada satu tahun. Kod sampel adalah seperti berikut:
HTTP/1.1 200 OK Content-Type: text/css Cache-Control: max-age=31536000 /* CSS文件内容 */
Cache fail dinamik
Untuk fail dinamik yang kerap berubah, anda boleh mengawal masa cache menjadi lebih pendek bagi memastikan penyemak imbas boleh mendapatkan kandungan fail terkini tepat pada masanya. Contohnya, fail HTML yang dijana secara dinamik tidak boleh menetapkan sebarang medan cache, membenarkan penyemak imbas meminta versi terkini setiap kali. Kod sampel adalah seperti berikut:
HTTP/1.1 200 OK Content-Type: text/html Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Expires: 0
Versi Control Cache
Apabila fail dikemas kini, pastikan nama fail tidak berubah dan buat penyemak imbas menganggap ia adalah fail baharu dengan menambah nombor versi atau cap masa pada nama fail atau URL dengan itu memuatkan semula fail. Kod sampel adalah seperti berikut:
4. Ringkasan
Caching fail HTML dicapai dengan menetapkan medan yang sepadan dalam pengepala respons HTTP. Dengan mengawal masa dan dasar cache dengan betul, kelajuan pemuatan halaman web dan pengalaman pengguna boleh dipertingkatkan. Dalam pembangunan sebenar, kaedah dan strategi caching yang sesuai dipilih berdasarkan kandungan dan ciri-ciri fail. Kami berharap contoh kod yang disediakan dalam artikel ini dapat membantu pembaca lebih memahami dan menggunakan mekanisme cache HTML.
Atas ialah kandungan terperinci Adakah fail HTML akan dicache?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!