我在自己写的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执行,如果生成了缓存的话就可免去解析标签这个过程,自然可以提速哦
上一篇: javascript - 检索页面资源被哪些页面引用了
下一篇: PHP SAPI接口