动静态页面区别

动态流程: 链接数据库----获取数据---呈现给用户
静态流程: 直接 呈现给用户


提高页面响应时间方法

① 把动态页面转换成静态页面(动页面--静页面)
② 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