欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

我在自己写的PHP框架中实现了静态页面缓存也就是文件缓存,请问可以加快页面加载速度吗?

程序员文章站 2022-05-10 20:26:07
...
我在自己写的PHP框架中实现了静态页面缓存也就是文件缓存,请问可以加快页面加载速度吗?

回复内容:

我在自己写的PHP框架中实现了静态页面缓存也就是文件缓存,请问可以加快页面加载速度吗?

当然是可以的,但是要注意输出静态缓存的时间,如果显示静态缓存和渲染动态页面输出之前,所经过的程序代码都是一样多的,那对页面加载速度的提升自然是不多的。

如果使用PHP生成缓存,那应该在控制器逻辑开始之前加一个缓存判断,如果是在控制器渲染模板的时候判断,性能提升效果就不明显了.

我下面说一种不需要PHP参与缓存生成和使用的方法,绝对要比任何需要PHP参与的缓存系统都要高效.
那就是利用Nginx实现的fastcgi_cache,比如缓存WordPress:

fastcgi_temp_path /png/nginx/1.5.7/ngx_fcgi_tmp;
fastcgi_cache_path /png/nginx/1.5.7/ngx_fcgi_cache levels=1:2 keys_zone=WORDPRESS:512m inactive=1d max_size=1g;
fastcgi_cache_valid 200 301 302 1d; #缓存1天(day)
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_cache_key $request_method://$host$request_uri;
location ~ \.php$ {
    fastcgi_cache WORDPRESS;
}

PHP这边只需要实现缓存删除功能:

PHP示例代码purge.php:
以下脚本要清除页面 GET://www.example.com/sample-page 的缓存:
/png/nginx/1.5.7/ngx_fcgi_cache/5/b6/abad4d0ad087b7eecaac98d0a2a08b65

一般的php框架都有内置标签,而这些内置标签,需要框架去解析成原生php脚本。然后再交给cgi执行,如果生成了缓存的话就可免去解析标签这个过程,自然可以提速哦

相关标签: php