Rumah php教程 php手册 简单的页面缓冲技术(一)

简单的页面缓冲技术(一)

Jun 21, 2016 am 09:10 AM
cache echo print readfile

页面

前言
  其实说它为技术,也许不能说是真正的技术。这只不过是我自已想出来的页面处理的方法,当然与别人的想法可能是一致的。不过我还是想给它一个好听的名字。那么我这里所指的页面缓冲是什么呢?就是指将动态生成的页面保存起来,供下一次的使用。这样下一次访问它可能就不需要动态生成了。就象提供了一个cache一样。在我的网站上,也许你的网站也是如此,使用了象模板之类的技术,这样用户所看到的页面就是动态生成的。但是一个页面对于你是这样,对于别人可能还是这样,即在一段时间内是不会变化的,如果将上次生成的结果直接返回给下一次访问的用户不是更好吗?减少了生成时间,效率要高一些。我想随着网站的发展,速度与效率问题还是要考虑的。这里我给出我的实现,希望对大家有所帮助。只是一个思路,没有具体的实现。


使用条件
  是不是所有的网页最好都使用呢?我想不需要,而且也不可能。之所以能缓冲就是因为下一次访问与上一次访问的内容可能是完全一样的。所以对于经常变化的页面就不合适了。比如页面上要显示计数信息的就不太合适。还有就是如果你的动态页面输出时,没有先输出到变量中,而是直接返回给用户,如使用echo,print ,readfile之类的输出,我个人认为现在还作不到。因为无法将输出结果得到,保存到文件中去(反正我是想了半天没有想出有什么可以将直将输出的东西截下来,重定向到文件中去)。那么比较适的动态页面的处理就是:输出结果应该可以放到一个字符串之中。所以使用条件就是:

页面基本不会变化
动态页面的处理结果可以存放到字符串中

  这样使用模板类来处理动态页面就很好了。通过在模板中设置可替换的变量,然后根据实际的值替换相应的模板中的变量,同时可以将结果放到字符串中进行输出,这种模板类的处理非常适合保存处理后的页面。当然不使用模板类,也可以通过字符串的处理来生成输出结果也是可行的。至于怎么做就不讨论了。


实现
  如前所述,不是一个真正的实现,而是一个实现的思路。
  处理流程:
1.根据访问的要求,生成缓冲文件名。
2.查看文件名是否存在,如果文件不存在,则生成动态页面,将页面保存,同时输出结果,结束;如果存在,则执行第3步。
3.统计文件的修改时间,及与动态页面生成有关的文件的修改时间。

4.比较缓冲文件的修改时间与其它页面的修改时间,如果其它页面修改时间大于缓冲文件修改时间,认为动态结果可能会发生变化,则重新生成动态页面结果,保存到文件中,且输出结果,结束;否则执行第5步
5.说明缓冲文件最新,则直接输出缓冲文件

  这就是我的处理。至于缓冲文件如何保存,可以建一个临时目录也可以使用数据库处理。如果使用了数据库则判断文件是否最新的方式也应作变化,比如在数据库中增加生成时间字段,比较这个时间字段与其它文件的修改时间即可。方法大家自已想。



Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Selepas menyertai syarikat itu, saya faham apa itu Cache Selepas menyertai syarikat itu, saya faham apa itu Cache Jul 31, 2023 pm 04:03 PM

Perkara itu sebenarnya seperti ini Pada masa itu, ketua saya memberi saya tugas pemantauan prestasi perkakasan Semasa proses menggunakan perf, saya memasukkan senarai perf arahan dan saya melihat maklumat berikut: Tugas saya adalah untuk membolehkan peristiwa cache ini. untuk dikira secara normal. Tetapi intinya, saya tidak tahu apa maksud kehilangan dan beban ini.

Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Lima projek sumber terbuka bahasa Go yang dipilih untuk membawa anda meneroka dunia teknologi Jan 30, 2024 am 09:08 AM

Dalam era perkembangan teknologi yang pesat hari ini, bahasa pengaturcaraan bermunculan seperti cendawan selepas hujan. Salah satu bahasa yang telah menarik perhatian ramai ialah bahasa Go, yang digemari oleh ramai pembangun kerana kesederhanaan, kecekapan, keselamatan serentak dan ciri-ciri lain. Bahasa Go terkenal dengan ekosistemnya yang kukuh dengan banyak projek sumber terbuka yang sangat baik. Artikel ini akan memperkenalkan lima projek sumber terbuka bahasa Go yang dipilih dan membawa pembaca untuk meneroka dunia projek sumber terbuka bahasa Go. KubernetesKubernetes ialah enjin orkestrasi kontena sumber terbuka untuk automatik

Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Keperluan pembangunan bahasa Go: 5 cadangan rangka kerja yang popular Mar 24, 2024 pm 01:15 PM

"Go Language Development Essentials: 5 Syor Rangka Kerja Popular" Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go digemari oleh semakin ramai pembangun. Untuk meningkatkan kecekapan pembangunan dan mengoptimumkan struktur kod, ramai pembangun memilih untuk menggunakan rangka kerja untuk membina aplikasi dengan cepat. Dalam dunia bahasa Go, terdapat banyak rangka kerja yang sangat baik untuk dipilih. Artikel ini akan memperkenalkan 5 rangka kerja bahasa Go yang popular dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan rangka kerja ini dengan lebih baik. 1.GinGin ialah rangka kerja web yang ringan dengan pantas

使用cache可以提高计算机运行速度这是因为什么 使用cache可以提高计算机运行速度这是因为什么 Dec 09, 2020 am 11:28 AM

使用cache可以提高计算机运行速度这是因为Cache缩短了CPU的等待时间。Cache是位于CPU和主存储器DRAM之间,规模较小,但速度很高的存储器。Cache的功能是提高CPU数据输入输出的速率;Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善。

Apakah cache? Apakah cache? Nov 25, 2022 am 11:48 AM

Cache dipanggil memori cache Ia adalah memori berkapasiti kecil berkelajuan tinggi antara unit pemprosesan pusat dan memori utama Ia biasanya terdiri daripada memori tempatan jenis ini untuk mengurangkan atau menghapuskan jurang antara CPU dan memori Kesan perbezaan kelajuan antara mereka terhadap prestasi sistem. Kapasiti cache kecil tetapi pantas, kelajuan memori rendah tetapi kapasiti besar Dengan mengoptimumkan algoritma penjadualan, prestasi sistem akan bertambah baik.

tutorial caching proksi terbalik nginx. tutorial caching proksi terbalik nginx. Feb 18, 2024 pm 04:48 PM

Berikut ialah tutorial untuk caching proksi terbalik nginx: Pasang nginx: sudoaptupdatesudoaptinstallnginx Konfigurasikan proksi terbalik: Buka fail konfigurasi nginx: sudonano/etc/nginx/nginx.conf Tambah konfigurasi berikut dalam blok http untuk mendayakan caching: http{...proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;proxy_cache

Bagaimana untuk menggunakan cache dalam projek SpringBoot Bagaimana untuk menggunakan cache dalam projek SpringBoot May 16, 2023 pm 02:34 PM

Prakata Caching secara berkesan boleh meningkatkan prestasi dan kestabilan sistem dengan menyimpan data yang kerap diakses dalam ingatan, mengurangkan tekanan pada sumber data asas seperti pangkalan data. Saya rasa semua orang telah menggunakannya lebih kurang dalam projek mereka, dan projek kami tidak terkecuali Walau bagaimanapun, apabila saya menyemak kod syarikat baru-baru ini, penulisannya sangat bodoh dan rendah adalah seperti berikut: publicUsergetById(Stringid) {Useruser=cache. getUser();if(user!=null){returnuser;}//Dapatkan pengguna daripada pangkalan data=loadFromDB(id);cahce.put(id,user);returnu

Pelan konfigurasi Cache Nginx dan cara menyelesaikan masalah penggunaan memori yang berkaitan Pelan konfigurasi Cache Nginx dan cara menyelesaikan masalah penggunaan memori yang berkaitan May 23, 2023 pm 02:01 PM

5 pilihan untuk cache caching nginx 1. Salah satu cache tradisional (404) Kaedah ini adalah untuk mengarahkan ralat 404 nginx ke bahagian belakang, dan kemudian gunakan proxy_store untuk menyimpan halaman yang dikembalikan oleh bahagian belakang. Konfigurasi: Lokasi/{root/home/html/;#Direktori rumah tamat tempoh1d;#Masa tamat tempoh halaman web error_page404=200/fetch$request_uri;#404 ​​​​Dihalakan ke direktori /fetch} Lokasi/fetch/{#404 Diarahkan hereinternal ;#Menunjukkan bahawa direktori ini tidak boleh diakses secara langsung secara luaran

See all articles