TP5.0的“请求缓存”,把页面缓存为静态HTML文件,提升加载速度

TP5.0的“请求缓存”,把页面缓存为静态HTML文件,提升加载速度 TP5.0的“请求缓存”不仅仅是告诉浏览器缓存页面它其实做了两件事它既在服务器本地缓存了页面数据又指挥浏览器进行缓存。我们可以把它理解为一个“双重缓存”机制。为了让你更好地理解我们来看一个实际例子。假设你有一个博客文章详情页 http://tp5.com/blog/1。1、第一次访问缓存建立用户请求到达服务器TP5发现没有这个请求的缓存。框架正常执行PHP代码从数据库查询ID为1的文章。TP5将生成的最终HTML页面保存到服务器的本地缓存中比如runtime/cache/目录下同时在HTTP响应头中设置了缓存指令如Cache-Control和Last-Modified告诉浏览器“这个页面你可以缓存起来有效期是10分钟。”最终浏览器收到完整的页面状态码200并将其缓存到本地。2、10分钟内第二次访问缓存生效浏览器带着本地缓存的标识If-Modified-Since头再次请求同一个地址。TP5的请求缓存机制首先被触发。它会检查服务器本地缓存发现已经存有blog/1这个页面的完整内容。浏览器缓存通过分析请求头发现浏览器自己也有这个页面的缓存并且还没有过期10分钟内。于是TP5什么PHP代码都不执行直接向浏览器返回一个304 Not Modified状态码。这个状态码就像在告诉浏览器“你本地存的页面还是最新的直接用吧”浏览器收到304后立刻从自己的本地缓存里加载页面。整个过程几乎没有网络传输速度极快。新的浏览器请求的时候服务器就直接返回静态HTML文件了速度也很快tp5.0 配置缓存 admin 模块下的 admin/login/index 这个页面application -route.php 在这个application 文件夹下的route.php的配置文件里添加如下代码分组的方式Route::group(admin,function(){//登陆页缓存 3600 秒 60*60*100 360000 100小时4.1天Route::get(login/index,admin/login/index,[cache0]);// ,[cache 360000] 0 表示永久缓存});或者直接不分组Route::get(webpc/login/index,webpc/login/index,[cache0]);// ,[cache 360000] 0 表示永久缓存[‘cache’ 0] 是永久缓存[‘cache’ 3600] 是缓存3600秒路由配置跳转的要这样写要先设置缓存再跳转页面否则会报错注意代码的先后顺序//***************要先设置缓存再跳转页面否则会报错*************************Route::get(/,webpc/index/index,[cache0]);////然后给这个跟页面设置永久缓存就这样写//根路径跳转到 webpc/index/index 这个页面Route::rule(/,webpc/index/index);免费在线工具网站 https://mantools.top