PHP实现页面静态化--imooc课程

优化页面响应时间的方法:
动态页面静态化 (实质是生成静态html文件)
优化数据库
使用负载均衡
使用缓存
执行php文件的过程:语法分析,编译运行
执行html文件:直接运行
这里写图片描述
打开phpbuffer的方法:1.可以再php.ini里面打开output_buffering或者使用ob_start()。

生成静态页面主要用的两个函数
file_put_contents
ob_get_clean()
先将数据库内容获取到,然后引入模板,填充模板 ,生成静态文件
引入模板的require函数同样会触发buffer(类似于echo)

如何出发系统生成纯静态化页面
1.页面添加缓存时间(过期问题)
这里写图片描述

if(is_file('./index.shtml')&&(time()-filemtime('./index.shtml'))<300){
    require_once('./index.shtml');
}else{
    //重新生成一份静态页面
    ob_start();
    //引入模板文件
    require_once('./templates/singwa.php');
    //这里不能使用ob_get_clean()否则信息不回呈现出来了
    file_put_contents('index.shtml',ob_get_contents());
}

2.手动触发方式:后台增加开始更新(手动触发的机制)
3.crontab定时扫描程序(crontab是linux的定时执行命令)
*  *  *  *  *  command
分 时 日 月 周 命令

*/5**** php/data/static/index.php #每五分钟执行一次

局部动态化的实现 (。。醉了,写完没有保存,又要重写)
使用ajax实现(ajax客户端程序要写在singwa.php中)

$.ajax({
    url:'http://state.com/api/ajax.php',
    type:'get',
    dataType:'json',
    error:function(){},
    success:function(result){
        if(result.code==1){
            var html='';
            $.each(result.data,function(key,value)){
                html+='<li><a href="/">'+value.title+'</a></li>';
            });
            $('#hot_html').html(html);
        }
    },
});

联表查询–ajax.php

$sql="select * from table1 as a join table2 as b on a.news_id=b.id order by a.count desc limit 3";
$result=mysql_query($sql,$connect);
/*
mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。关联数组和数字数组的差别在于键名是数字还是有意义的键名
*/
while($row=mysql_fetch_assoc($result)){
    $res[]=$row;
}

function show($code=0,$message="error",$data=array()){
    $result=array(
    'code'=>$code,
    'message'=>$message,
    'data'=>$data
    )
    echo json_encode($reesult);
}
return show(1,'success',$res);

伪静态–动态url地址转化为静态的url地址
1.通过$_SERVER[PATH_INFO]实现(nginx服务器默认不支持path_info要配置)
正则表达式分析url地址

/*
http://state.com/newsList.php?type=2&category_id=1
http://state.com/newsList.php/2/1.html
*/
if(preg_match('/^\/(\d+)\/(\d+).html/',$_SEVER[PATH_INFO],$arr)){
    $type=$arr[1];
    $category=$arr[2];
    //去数据库查询,放入模板
}else{
    //TODO跳404.或者返回首页
}

2.配置服务器的rewrite直接生成伪静态
apache:
1.虚拟域名配置
httpd.conf文件中开启相关模式
LoadModule rewrite_module modules/mod_rewrite.so
Include conf/extra/httpd-vhosts.conf
在httpd_vhosts.conf修改虚拟域名
修改本地hosts文件(里面是绑定的一些域名)(window8修改竟然没有权限)

2.伪静态配置
rewriteEngine
在httpd_vhosts.conf中做一些配置

看完一个视频,把重点总结到博客里面能记下很多东西。还是要坚持写博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值