动静态页面区别
动态流程: 链接数据库----获取数据---呈现给用户
静态流程: 直接 呈现给用户
提高页面响应时间方法
① 把动态页面转换成静态页面(动页面--静页面)
② mysql优化
③ 负载均衡
④ 内存缓存
伪静态
就是把动态地址转化为静态地址(动地址---静地址),但还是动态页面
静态化介绍
分为 纯静态 和 伪静态;
纯静态又是 全部静态 和局部静态(页面中有动态有静态);
纯静态案例
第一: buffer(缓冲区)
流程: 要显示的内容---buffer(缓冲区)---tcp----客户端
启动:
①在php代码写入ob_start();
② 在php.ini中找到output_buffering=off
如果把缓冲区启动了,结果都会先存在 缓冲区 ,缓冲区把数据储存在 内存地址 ,如果满了就会存在硬盘 ;
第二: 动--静原理
主要用到 缓冲区(php内置缓存机制) 和 file_put_contents()函数;
缓存区主要用到的相关函数:
ob_start();
ob_get_contents(); 获取缓冲区数据
ob_clean(); 清空缓冲区
ob_get_clean(); 删除当前得到的数据内容
第三: 动--静 步骤解析
① 链接数据库,获取数据;
② 把获取的数据放入对应的文件模板中
③ 把动态页面转化为静态页面,生成静态页面
第四: 代码
①链接数据库
导入文件
require_once("./db.php");
$link=Db->connect();
②查询结果
$sql="select * from tj_video where cate=2 ";
$res=mysql_query($sql,$link);
$news=[];
while($row=mysql_fetch_array($res)){
$news[]=$row;
}
③引入模板文件
ob_start();
require_once("./singws.php");
if(file_put_contents("index.shtml",ob_get_contents()){
echo "成功";
}else{
echo "失败";
}
④最后判断这个页面 是否已经存在缓存文件
如果index.shtml文件存在,就直接 获取该文件;
触发系统生成静态页面方法
①页面添加缓存时间
filemtime()获取该文件修改时间
用户请求-----页面时间是否过去-----是 生成 新页面 -----否 直接获取
如何看该页面是否是动静态文件?
该查询结果,刷新页面看内容是否变化
②手动 触发 方式
按钮触发
③crontab 定时扫描程序
每分钟执行
局部动态
静态化中加载 动态内容 主要用到ajax