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

来源:互联网 发布:e4a怎么写入数据库 编辑:程序博客网 时间:2024/05/21 07:07

优化页面响应时间的方法:
动态页面静态化 (实质是生成静态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=1http://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中做一些配置

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

0 0
原创粉丝点击