六、smarty-缓存控制前的页面静态化原理
2024-08-31 05:04:43
页面静态化可以实现优化服务,对大流量访问网站非常至关重要
为什么页面静态化,
1、 不去执行数据库连接
2、 不去执行SQL语句
设置按时间更新,
1、 按时间更新,如果缓存文件设置1小时
如下为页面静态化原理实例:
//内容分页显示实例
<?php $cachefile = "demo_".$get["page"].".html"; //定义的缓存文件用于存放静态页面, $get["page"]表示将每一分页都缓存
$cachetime=20; //设置更新时间,单位是秒 if(!file_exists($cachefile) || filemtime($cachefile)+$cachetime<time()) //如果缓存文件不存在(或时间过期)则执行数据库查询输出 //开启缓存,将输出内容存入内存
ob_start(); //链接数据库
try{
$PDO = new PDO('mysql:host=localhost;dbname=access_control', 'root', 'password');
}catch(PDOException $e){
echo $e->getMessage();
exit;
} //查询语句
$sql = "select * from access_user";
$stnt = $PDO->prepare($sql); $stnt->execute(); //组合成html输出
echo '<table border="1" width="400" align="align">';
echo '<caption><h1>USER</h1></caption>';
while(list($id,$name,$age,$email) = $stnt->fetch(PDO::FETCH_NUM))
{
echo '<tr>';
echo '<td>'.$id.'</td>';
echo '<td>'.$name.'</td>';
echo '<td>'.$age.'</td>';
echo '<td>'.$email.'</td>';
echo '</tr>';
}
echo '</table>'; //将所有在内存中缓存的内容保存到变量$html中
$html = ob_get_content();
file_put_contents($cachefile,$html); //输出到缓存静态页面中 //输出所有内存中的内容到客户端;
ob_flush(); }else{
include $cachefile; //如果缓存文件存在直接加载缓存文件
}
最新文章
- 多Form界面控件状态变化问题分析
- 【小白的CFD之旅】08 CFD速成之道
- 安装Apache(httpd服务)
- CyclicBarrier的介绍和使用
- Spark MLBase分布式机器学习系统入门:以MLlib实现Kmeans聚类算法
- 实战:推断mysql中当前用户的连接数-分组筛选
- iOS使用ffmpeg播放rstp实时监控视频数据流
- MyEclipse10的正确破解方法
- 团队作业4——第一次项目冲刺(Alpha版本)4.22
- LeetCode 531. Longly Pixel I (孤独的像素之一) $
- SAP成都研究院35岁以上的开发人员都去哪儿了?
- mysql授权报错
- Spring 环境与profile(三)——利用maven的resources、filter和profile实现不同环境使用不同配置文件
- thinkphp零碎小知识
- word break II(单词切分)
- Alpha 冲刺 (7/10)
- 122、详解Glide图片加载库常用方法
- 8 python time$datetime
- (转)MyEclipse快捷键大全
- CSUOJ 1808 地铁